1. 程式人生 > 資料庫 >oracle邏輯運算子與其優先順序簡介

oracle邏輯運算子與其優先順序簡介

Oracle的邏輯運算子也是用在SQL語句中必不可少的因素,一共有三個

邏輯運算子

意義

and

雙值運算子,如果左右兩個條件都為真,則得到的值就為真

or

雙值運算子,只要左右兩個條件有一個為真,則得到的值就為真

not

單指運算子,如果原條件為真,則得到真,如果元條件為假,反之如果原條件為假,則結果為真

Oracle的邏輯運算子也是用在SQL語下面使一些例子:

Select * from emp where sal > 2000 and job = ‘SALESMAN';

尋找那些工資高於2000的且職位為銷售的職員。

Select * from emp where job = ‘CLERK' or deptno = 20;

尋找那些工作為CLERK或者所在部門標號為20的職員的列表

   Select * from emp where not (sal > 3000 or sal < 1500);

尋找那些工資既不大於3000也不小於1500,也即在1500到3000範圍的員工,相當於:select * from emp where sal between 1500 and 3000;

結合到前面所列出的各類運算子,在這裡彙總一下oracle中所有運算子的優先順序句中必不可少的因素,一共有三個

運算子

級別

算術運算子(即‘+',‘-',‘*',‘/')

1

連線運算子(即‘||')

2

比較運算子(即‘>',‘>=',‘<',‘<=',‘<>')

3

Is [not] null,[not] like,[not] in

4

[not] between-and

5

not

6

and

or

通常使用‘()'可以改變運算子的優先順序。

需要注意的是and的優先順序要優於or,也就是說

下面的語句

Select * from emp where sal < 1500 or sal >= 2000 and job = ‘ANALYST';

等價於

Select * from emp where sal < 1500 or (sal >= 2000 and job = ‘ANALYST');


而不是你所預期的

Select * from emp where (sal < 1500 or sal >= 2000) and job = ‘ANALYST';


一般我們即使我們要表達第一個語句所要表達的意思,為了避免誤解,都不採取第一種寫法,而是用括號來表明我們要先算後面的部分。

總結

本文關於oracle邏輯運算子與其優先順序簡介就到這裡,希望對大家有所幫助。感興趣的朋友可以參閱:Oracle RMAN自動備份控制檔案方法介紹、oracle邏輯結構分析、 oracle 資料庫啟動階段分析、 oracle 虛擬專用資料庫詳細介紹等。有什麼問題可以隨時留言,小編會及時回覆大家的。感謝朋友們對我們網站的支援。