本文假定读者已经对数据库连接技术有所了解,因此只讨论有关SQL查询命令的语法。
表结构如下(MS Access 2000):
表名:userTable
----------------------
字段名 字段类型
----------------------
userID 自动计数(长整型)
userName 文本
userSex 文本
CreateDate 日期/时间(默认值为Now())
----------------------
一、用Select命令提取记录
1、取得表中所有记录
Select命令,语句如下:
"Select *From userTable"
2、取得表中userID字段记录
"Select userID From userTable"
3、取得表中userID、userSex字段记录
"Select userID, userSex From userTable"
4、取得表中userSex值为“男”的记录
"Select From userTable Where userSex = '男'"
5、取得表中userName值中包含“张”字的记录
"Select From userTable Where userName Like '%男%'"
6、取得表中所有记录,按CreateDate字段值降序排列
"Select From userTable Order By CreateDate DESC"
说明:
1)、以上命令可以组合使用,如,取得表中userName中包含“浩”字的,userID的值,并按CreateDate值的时间降序排列,那么命令如下:
"Select userID From userTable Where userName Like '%浩%' Order By CreateDate DESC"
2)、使用中应注意,如果字段类型为文本,则在条件判别时,应在条件字外加上单引号,此规则适用于任何一个SQL查询命令。
3)、条件字中的“%”为通配符。
4)、当判别条件多于一条时,应以“And”或“Or”连接。
二、用Insert Into命令插入新记录
1、插入一条新记录
"Insert Into userTable (userName, userSex) Values ('张浩南', '男')"
说明:
这里需要注意的是,插入的记录的值的类型应符合表中的字段类型,否则会出错。其实使用单引号只是个便捷的方法,但并不规范,因为如果要插入的记录中本身含有单引号,则会出现错误(虽然这种情况并不经常发生,但有可能存在)。所以我们最好使用一个自定义的函数来实现单引号的替换。方法如下
Function SqlStr(data)
SqlStr="'" & Replace(data, "'", "''") & "'"
End Function
在命令中则为:
Dim Name, Sex
Name="张浩南"
Sex="男"
"Insert Into userTable (userName, userSex) Values (" & SqlStr(Name) & ", " & SqlStr(Sex) & ")"
这样则无论值中是否含有单引号或双引号均不会出错。
但请注意,这个规则只适用于类型为文本的字段,如果为其它类型,则一般无需考虑,即不必加任何符号。
三、用Update更新记录
1、更新全部记录的全部字段
"Update userTable Set userID=1, userSex='男', userName='徐勇', CreateDate=" & CDate(CreateDate)
说明:
式中的值可以用运算表达式,如:userID=userID+1等。
2、更新userName字段值为“徐勇”的记录值
"Update userTable Set userID=1, userName='徐詠' Where userName='徐勇'"
说明:
需要组合条件查询时,方法同Select。另外此处也要注意单引号问题。
四、用Delete删除记录
1、删除全部记录
"Delete From userTable"
2、删除特定条件的记录,如删除userID为“20”的记录
"Delete From userTable Where userID=20"
3、删除组合条件记录,如删除userSex为“女”,userName中包含“张”的记录
"Delete From userTable Where userSex='女' And userName Like '%张%'"
说明:
注意单引号问题。
以上是ASP连接数据库技术时使用SQL查询语言时的常用命令及其技巧,其实SQL命令还有很多,只是并不一定都是常用命令,如果想了解更多,请查阅有关资料。另外,以上内容为本人随手写就,手边并无参考资料,因此如有错误,请多包含,谢谢观赏。