TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
NOT运算符
NOT运算符用于对搜索条件的布尔值求反。这里讨论NOT运算符的使用、应用场合及其与<>运算符的区别。
使用NOT运算符
与其他运算符不同,表示否定的NOT运算符不能单独应用,而经常与其他运算符联合使用。例如,NOT IN运算符实际上就是IN运算符与NOT运算符的联合使用。当决定搜索条件求反值时,DBMS使用表中的NOT真值表给出的逻辑。
表 NOT真值表
要求反的值
True
False
NULL
求反后的结果
False
True
NULL
注意 NULL值进行取反,结果仍是NULL。 下面通过一个具体的例子说明NOT运算符的使用。
实例 使用NOT运算符实现查询
从TEACHER表中查询不在计算机系的所有教师的姓名(TNAME)、系(DNAME)、年龄(AGE)、性别(TSEX)信息。实例代码: SELECT TNAME, DNAME,AGE, TSEX FROM TEACHER WHERE NOT DNAME="计算机" ORDER BY DNAME
NOT运算符对紧跟其后的条件取反,NOT DNAME=‘计算机’实际上就等价于DNAME<>‘计算机’或者DNAME!=‘计算机’。 需要强调一点,NULL值进行取反,结果仍是NULL,这一点在具体应用中,读者经常会忽略。
实例 NULL值的取反
如下面的代码: SELECT * FROM TEACHER WHERE NOT SAL >1500 OREDR BY SAL
上述实例代码实际上是查询所有工资不高于1500的教师信息,从结果中发现,工资为NULL的教师记录并没有包括在结果表中。因为当SAL为NULL时,“SAL >1500”的执行结果也为NULL,而NOT NULL的运算结果仍然为NULL,也就不满足查询条件。 |
|