第一个问题:单引号和双引号没有区别,只要成对出现就可以,比如:职称=“工程师”或 职称=‘工程师’
第二个问题:*与%不一样。在sql语言中*表示所有字段,例如:select * from gz;而%表示字符通配符,可以代替任意多个字符,例如: select * from gz where 职称 like "%师" (查找gz表中职称末尾是“师”字的所有字段信息,那么“工程师”,“建筑师”等都会满足条件)
第三个问题:&与and 有区别。and是逻辑运算并且的意思,结果为逻辑型,即是或否,例如:select * from gz where 职称="工程师" and 工资<1500(查找工资表中工资小于1500元的工程师的信息);而&是字符串的连接符号,例如"good " & "morning" 结果为"good morning".
Select * from gz where 职称="工程师"
这个语句有问题,肯定在调试时出现错误,原因很简单,完全的SQL语句如下:
strSQL="Select * from gz where 职称="工程师""
你应该知道,"Select * from gz where 职称="这是一个字符串,字符串到“=”这里结束了,后面是“工程师”,是什么?变量?不对!字符串?不对!这里就会出现问题,而最后的“""”是一个空字符串。正确的语句应该是:
strSQL="Select * from gz where 职称='工程师'"
双引号到“'工程师'”后才结束,也就是这是应该完整的字符串。
在SQL语句中,单引号和双引号的应用是有区别的。
例如:
strSQL="Select * from gz where 职称='" & 工程师 & "'"
那么,“工程师”是字符型变量,注意:有单引号!
再如:
strSQL="Select * from gz where ID=" & PID & ""
说明,字段ID是数字类型字段,变量PID是数字类型变量,注意:没有了单引号!
再如:
strSQL="Select * from gz where 职称 Like '%" & ABC & "%'"
是通配符%的典型应用,一般这种查询都是字符型字段。
&是字符串连接符, AND、OR、NOT等是逻辑运算符,它们的用法你可以参考有关资料。
Access中字符常量的定界符可以是单引号,也可以是双引号。
在其VBA中,如下例,“北京”两个字要用引号引起来,可以用单引号
strsql = "select * from 学生 where 籍贯='北京'"
也可以用两个连续双引号表示一个双引号
strsql = "select * from 学生 where 籍贯=""北京"""
但不能用strsql = 'select * from 学生 where 籍贯="北京"'
在Access 2003中通配符%用*替代,例如查询姓“李”的学生信息
SELECT * FROM 学生 WHERE 姓名 like "李*";
&是字符串连接运算符,例如"abc" & "def"得到字符串"abcdef"
AND是逻辑运算符,当两个操作数同时为真时,其结果AND的结果为真
例如:年龄>20 And 性别='女'
在access的sql中单引号和双引号都可用。比较灵活。