LIKE、BETWEEN、IS NULL、IS NOT NULL的使用
在SQL中,谓词就是返回值位真值的函数。常用的谓词有LIKE、BETWEEN、IS NULL、IS NOT NULL、IN、EXISTS等。
按此定义MAX、MIN、ANY、ALL等并不能算作谓词(?)
LIKE
LIKE子句用于模糊查询,通常与通配符连用,如:1/*2* ‘_’匹配一个字符,‘%’匹配至少一个字符3* 查询学生表中姓欧阳的学生信息4*/56SELECT * 7FROM S 8WHERE Sname LIKE '欧阳%';
注意:在使用=替代LIKE时,通配符是不起转意作用的(即目标是“欧阳%”而非姓欧阳的人)
BETWEEN
BETWEEN的使用可以解放连续的不等式表达式,往往和AND连用,如:1/*2* 查询学号介于17100000和17120000之间的学生信息3*/45SELECT *6FROM S7WHERE Sno BETWEEN 17100000 AND 17120000;
此外,BETWEEN还可以与NOT连用,起到取反作用。
注意:不同数据库对边界处理可能不一致。
IS NULL、IS NOT NULL
SQL对数值和NULL的比较是不容忍的。即任何企图和NULL的比较都是False。例如以下查询均返回NULL:1SELECT(3=NULL); /* NULL */2SELECT(3!=NULL); /* NULL */3SELECT(NULL=NULL); /* NULL */4SELECT(NOT NULL=NULL); /* NULL */5SELECT(NOT NULL!=NULL); /* NULL */
要返回真值,应该使用IS NULL 或 IS NOT NULL,如:1SELECT(3 IS NOT NULL); /* 1 */2SELECT(NULL IS NULL); /* 1 */3SELECT((NULL=NULL) IS NOT NULL); /* 0 */