6.2.2 OR运算符
OR运算符表示“或”的关系。当可能有多个条件为True,但只要有一个为True就满足搜索要求时,可以使用OR运算符来组合搜索条件。OR在结合两个布尔表达式时,只要其中一个条件为True时,便传回True。OR运算符的真值表如表6-3所示。
表6-3 OR真值表
表 达 式 一 | 表 达 式 二 | 结 果 |
True | True | True |
True | False | True |
True | NULL | True |
False | False | False |
False | NULL | NULL |
NULL | NULL | NULL |
注意 NULL与True进行OR运算时,结果为True而不是NULL。
语法如下:
SELECT column FROM table_name WHERE condition1 OR condition2 |
在WHERE子句中,通过OR运算符连接了两个查询条件condition1和condition2,只要其中一个条件为True,WHERE子句值就为True,DBMS会将当前记录包括在结果表中;如果WHERE子句求值为False或NULL,则DBMS排除该值。
实例3 使用OR运算符实现条件查询
从TEACHER表中查询计算机系和生物系的所有教师的姓名(TNAME)、系(DNAME)、工资(SAL)信息。实例代码:
SELECT TNAME, DNAME, SAL FROM TEACHER WHERE DNAME='计算机' OR DNAME='生物' ORDER BY DNAME |
运行结果如图6.3所示。
图6.3 计算机和生物系的教师 |
NULL与True进行OR运算时,结果为True。下面通过一个实例来说明。
实例4 NULL与True进行OR运算
从TEACHER表中查询工资(SAL)高于1500或者年龄小于45的教师的所有信息。实例代码:
SELECT * FROM TEACHER WHERE SAL >1500 OR AGE < 45 ORDER BY SAL |
运行结果如图6.4所示。
图6.4 年龄小于45或者工资大于1500的教师 |
从结果中,不难发现前两条记录的SAL列均为NULL。虽然判别式“SAL >1500”对这两条记录的计算结果为NULL,但是判别式“AGE < 45”的计算结果为True,因此再经过OR运算,最终WHERE子句结果为True。