OR运算符
6.2.2? OR運(yùn)算符
OR運(yùn)算符表示“或”的關(guān)系。當(dāng)可能有多個(gè)條件為True,但只要有一個(gè)為True就滿足搜索要求時(shí),可以使用OR運(yùn)算符來組合搜索條件。OR在結(jié)合兩個(gè)布爾表達(dá)式時(shí),只要其中一個(gè)條件為True時(shí),便傳回True。OR運(yùn)算符的真值表如表6-3所示。
表6-3?OR真值表
| 表?達(dá)?式?一 | 表?達(dá)?式?二 | 結(jié)????果 |
| True | True | True |
| True | False | True |
| True | NULL | True |
| False | False | False |
| False | NULL | NULL |
| NULL | NULL | NULL |
注意?NULL與True進(jìn)行OR運(yùn)算時(shí),結(jié)果為True而不是NULL。
語法如下:
| SELECT??column FROM ??table_name WHERE???? condition1 OR??????? ?condition2 |
在WHERE子句中,通過OR運(yùn)算符連接了兩個(gè)查詢條件condition1和condition2,只要其中一個(gè)條件為True,WHERE子句值就為True,DBMS會(huì)將當(dāng)前記錄包括在結(jié)果表中;如果WHERE子句求值為False或NULL,則DBMS排除該值。
實(shí)例3? 使用OR運(yùn)算符實(shí)現(xiàn)條件查詢
從TEACHER表中查詢計(jì)算機(jī)系和生物系的所有教師的姓名(TNAME)、系(DNAME)、工資(SAL)信息。實(shí)例代碼:
| SELECT??TNAME, DNAME, SAL FROM ??TEACHER WHERE? ??DNAME='計(jì)算機(jī)' OR???DNAME='生物' ORDER BY??? ?DNAME |
運(yùn)行結(jié)果如圖6.3所示。
| ? |
| 圖6.3? 計(jì)算機(jī)和生物系的教師 |
NULL與True進(jìn)行OR運(yùn)算時(shí),結(jié)果為True。下面通過一個(gè)實(shí)例來說明。
實(shí)例4? NULL與True進(jìn)行OR運(yùn)算
從TEACHER表中查詢工資(SAL)高于1500或者年齡小于45的教師的所有信息。實(shí)例代碼:
| SELECT??* FROM ??TEACHER WHERE? ??SAL >1500 OR???AGE < 45 ORDER BY??? ?SAL |
運(yùn)行結(jié)果如圖6.4所示。
| ? |
| 圖6.4? 年齡小于45或者工資大于1500的教師 |
從結(jié)果中,不難發(fā)現(xiàn)前兩條記錄的SAL列均為NULL。雖然判別式“SAL >1500”對(duì)這兩條記錄的計(jì)算結(jié)果為NULL,但是判別式“AGE < 45”的計(jì)算結(jié)果為True,因此再經(jīng)過OR運(yùn)算,最終WHERE子句結(jié)果為True。
總結(jié)
- 上一篇: Github 爆火!程序员疯抢的 Jav
- 下一篇: oracle 10g下载百度云地址