|
樓主 |
發表於 2005-6-13 13:24:07
|
顯示全部樓層
例:
1. 选取全部数据
Select * From users
2. 选取指定字段的数据
Select real_name,email From users
如果只想选取表中某些字段的数据,在Select后面指定字段,可以指定多个列,但每个列之间必须用逗号隔开。
3. 只选取前3条记录
Select Top 3 * From users
4. 用表中原有的字段产生派生字段(利用一列或若干列产生一个新的字段)
Select real_name,(submit_date+365) AS new_date From users
5. 根据条件选取数据
Select * From users Where submit_date<#2003-11-1#
如果是多个条件必须用条件连接符
Select * From users Where submit_date<#2003-11-1# And real_name=”建波”
条件连接符
=
<>
>
>=
<
<=
Not
And
Or
Between
Not Between
In
Not In
Is NULL
Is Not NULL
6. 按关键字查找记录
Select * From users Where real_name like %勇%
有时查找条件可能不太精确。(模糊查找)
:%代表任意字符
7. 查询结果排序
Select * From users Order By real_name ASC
查询表中的数据时,当表中数据较多时,希望表中的数据能够按照我们要求的顺序显现出来,利用Order By就可以实现了。
:如果有按多个字段排序,中间用逗号隔开,排序时,首先参考第一字段的值,当第一字段的值相同时,再参考第二字段的值,依此类推。
8. 查询满足条件的记录的总数
Select Count(*) As total From user Where submit_date<#2003-11-1#
9. 组合查询
Select users.real_name,day_log.log_date,day_log.IP From users,day_log Where users.user_name=day_log.user_name
:在选取各个表的字段时,要标明是哪个表的字段。不过,将来引用时就不需要标明表了,只要用字段名就行了。
:用到的两个表之间用逗号隔开
:在两个表连接时,用到users.name=particular.name条件,表示根据两个表中的user_name字段将两个表合并成一个表。
:这只是简单的组合查询,还有左连接、右连接等。
10. 利用Group By分类合并
Select Sum(grade) As total_grade,Average(grade) As average_grade From usergrade Group By class
要求每个班级的总分和平均分
Insert 语句
在ASP程序中,经常需要向数据库中插入数据,例如向用户表Users中增加新成员时,就需要将新用户的数据插入到表users中。此时,可以使用SQL语言中的Insert语句来实现这个功能。
语法:
Insert Into 表(字段1,字段2,…) values(字段1的值,字段2的值,…)
:利用上述语句可以给表中全部或部分字段赋值。values括号中字段值的顺序必须与前面扩号中字段一一对应。各个字段之间、字段值这间用逗号分开。
:若某字段的类型为文本型或备注型,则该字段值两边要加引号;若为日期/时间型,则该字段值两边要加#号(加引号也可以);若为布尔型,则该字段值为True或False;若为自动编号型,则不要给该字段赋值,因为Access会自动加1或随便产生。
:若某字段值要用数据表的缺省值时,则在该字段值处填写DEFAULT;如果想输入的列值是空值时,则在列值处填写NULL。
:若使用DEFAULT作字段值时,如果该字段没有设定缺省值,但不是必填字段(允许NULL值),则结果为NULL;如果为必填字段(不允许NULL值),而在Insert语句中又没给该字段赋值,那就会出错。
:Insert语句的要求非常复杂,尤其是”默认值”、”必填字段”、”允许空字符串”几个属性。假设你没有在Access中进行特别的设置,那么一般来说,有值的字段出现在Insert语句中,没有值的字段就不要出现在Insert语句中。
例:
1. 只插入user_name字段
Insert Into users(user_name) values(“liya”)
2. 只插入user_name和real_name字段
Insert Into users(user_name,real_name) values(“feiyun”,”费云”)
:因为user_name为主键,所以必须插入值。而且主键还不能和原来的用户名重复。
3. 只插入user_name和submit_date字段
Insert Into users(user_name,submit_date) values(“luofang”,#2003-12-1#)
4. 假如在users表中增加了一个年龄字段age,为数字类型
Insert Into users(user_name,age) values(“zhangpeng”,23)
5. 在users表中增加一条完整的记录
Insert Into users(user_name,password,real_name,tel,email,submit_date) values(“mengmeng”,”123456”,”萌萌”,”6887150”,mengmeng@henan.com,#2003-11-2#)
Insert语句的常见错误
1. User_name是主键,但没有赋值
2. Real_name字段不允许空字符串,却赋了空字符串(两个双引号表示空字符串)
Insert Into users(user_name,real_name) values(“tutu”,””)
不过该字段不是必填字段,可以赋值NULL值。
Insert Into users(user_name,real_name) values(“tutu”,NULL)
:NULL和空字符串的区别:NULL表示什么都没有,而空字符串却表示有内容,只不过是长度为0的字符串。
3. 字符串两边没有加双引号
Insert Into users(user_name,real_name) values(“tutu”,涂涂)
Delete语句
在SQL语言中,可以使用Delete语句来删除表中无用的记录
语法:
Delete From 表 [Where 条件]
:”Where条件”与Select中的用法是一样的,凡是符合条件的记录都会被删除,如果没有符合条件的记录,则不删除。
:如果省略”Where条件”,将删除所有数据。
例:
1. 删除user_name为”tutu”的用户
Delete From users Where user_name=”tutu”
2. 删除2003年1月1日前注册,且real_name为”李亚”的用户
Delete From users Where submit_date<#2003-1-1# And real_name=”李亚”
3. 删除表中所有的数据
Delete From users
Update语句
使用Update语句来实现更新数据的功能。
语法:
Update 数据表名 Set 字段1=字段值1,字段2=字段值2,… [Where 条件]
:Update命令可以用来更新表内部分或全部的记录。其中”Where条件”是用来指定更新数据的范围的,其用法同Select语句中的”Where条件”的用法。凡是符合条件的记录都被更新,如果没有符合条件的记录则不更新。
:如果省略Where条件,将更新数据表内的全部记录
:如果想要更新数据,也可以先删除再添加。不过,这样的话,自动编号字段的值就会改变,而一般情况下可能不允许改变。所以建议还是用更新语句,因为它只更新指定的字段。
例:
1. 修改user_name为”jjshang”的用户的电话和Email地址。
Update users Set tel=”8282999”,email=jjshang@163.net Where user_name=”jjshang”
2. 将所有2003年1月1日前注册的用户的注册日期统一更改为2003年1月1日。
Update users Set submit_date=#2003-1-1# Where submit_date<#2003-1-1#
3. 假如有年龄字段age,将所有人的年龄增加10岁。
Update users Set age=age+10 |
|