運(yùn)算符是一個(gè)符號(hào),告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作。 PL/SQL語言有豐富的內(nèi)置運(yùn)算符,運(yùn)算符提供的以下幾種類型:
算術(shù)運(yùn)算符
關(guān)系運(yùn)算符
比較運(yùn)算符
邏輯運(yùn)算符
字符串運(yùn)算符
本教程將一個(gè)接一個(gè)介紹算術(shù),關(guān)系比較和邏輯運(yùn)算符。字符串運(yùn)算符將在下章討論。
下表列出了所有PL/SQL支持的算術(shù)運(yùn)算符。假設(shè)變量A=10和可變B=5,則:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| + | 相加兩個(gè)操作數(shù) | A + B = 15 |
| - | 第一個(gè)操作數(shù)減去第二個(gè)操作數(shù) | A - B = 5 |
| * | 兩個(gè)操作數(shù)相乘 | A * B = 50 |
| / | 兩個(gè)操作數(shù)相除 | A / B = 2 |
| ** | 乘方運(yùn)算 | A ** B = 100000 |
關(guān)系運(yùn)算符比較兩個(gè)表達(dá)式或值,并返回一個(gè)布爾結(jié)果。下表列出了所有PL/SQL支持的關(guān)系運(yùn)算符。假設(shè)變量A=10,變量B=20,則:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| = | 檢查兩個(gè)操作數(shù)的值是否相等,如果是的話那么條件為真。 | (A = B) 結(jié)果為 false. |
|
!= <> ~= |
檢查兩個(gè)操作數(shù)的值是否相等,如果值不相等,則條件變?yōu)檎妗?/td> | (A != B) 結(jié)果為 true. |
| > | 檢查左邊的操作數(shù)的值是否大于右操作數(shù)的值,如果是的話那么條件為真。 | (A > B) 結(jié)果為 false. |
| < | 檢查左邊的操作數(shù)的值是否小于右操作數(shù)的值,如果是的話那么條件為真。 | (A < B) 結(jié)果為 true. |
| >= | 檢查左邊的操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是的話那么條件為真。 | (A >= B) 結(jié)果為 false. |
| <= | 檢查左邊的操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是的話那么條件為真。 | (A <= B) 結(jié)果為 true. |
比較運(yùn)算符用于一個(gè)表達(dá)比較到另一個(gè)。結(jié)果總是 TRUE,F(xiàn)ALSE或NULL。
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| LIKE | LIKE操作一個(gè)字符,字符串或CLOB值進(jìn)行比較匹配模式則返回TRUE,如果不匹配模式則FALSE | 如果 'Zara Ali' like 'Z% A_i' 返回一個(gè)布爾值true, 然而, 'Nuha Ali' like 'Z% A_i' 返回布爾值 false |
| BETWEEN | BETWEEN 運(yùn)算符測(cè)試一個(gè)值是否位于規(guī)定的范圍內(nèi). x BETWEEN a AND b 意思就是 x >= a and x <= b. | 如果 x = 10 那么 x between 5 and 20 返回 true, x between 5 and 10 返回 true, 但是 x between 11 and 20 返回 false |
| IN | IN運(yùn)算符的測(cè)試設(shè)置成員. x IN (set) 意味著x等于集合中的某一個(gè)成員 | 如果 x = 'm' then, x in ('a', 'b', 'c') 返回布爾值false,但x在('m', 'n', 'o') 返回布爾值 true. |
| IS NULL | IS NULL運(yùn)算符返回布爾值true,如果它的操作數(shù)是NULL或FALSE(如果它不為NULL)。包括NULL值的比較總能取得NULL | 如果 x = 'm', 那么 'x is null' 返回布爾值false |
下表顯示了PL/SQL支持的邏輯運(yùn)算符。所有這些操作符布爾運(yùn)算,并產(chǎn)生布爾結(jié)果。假設(shè)變量A=true,變量B=false,那么:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| and | 稱為邏輯AND運(yùn)算。如果兩個(gè)操作數(shù)為true,則條件為true | (A and B) 結(jié)果為 false. |
| or | 所謂的邏輯或操作。如果任何兩個(gè)操作數(shù)為true,則條件變?yōu)閠rue | (A or B) 結(jié)果為 true. |
| not | 所謂邏輯非運(yùn)算符。用于反向操作數(shù)的邏輯狀態(tài)。如果條件為true,那么邏輯非運(yùn)算符將使它為false | not (A and B) 結(jié)果為 true. |
運(yùn)算符優(yōu)先級(jí)確定表達(dá)式分組。這會(huì)影響一個(gè)表達(dá)式是如何進(jìn)行計(jì)算。某些運(yùn)算符的優(yōu)先級(jí)高于其他運(yùn)算符; 例如,乘法運(yùn)算符的優(yōu)先級(jí)比加法運(yùn)算高:
例如 x =7 + 3* 2; 這里,x被賦值13,而不是20,因?yàn)檫\(yùn)算符*具有優(yōu)先級(jí)高于+,所以它首先被乘以3 * 2,然后再加上7。
這里,具有最高優(yōu)先級(jí)的操作出現(xiàn)在表的頂部,那些具有最低出現(xiàn)在底部。在表達(dá)式,更高的優(yōu)先級(jí)運(yùn)算符將首先計(jì)算。
| 運(yùn)算符 | 操作符 |
|---|---|
| ** | 指數(shù)運(yùn)算 |
| +, - | 加法,取反 |
| *, / | 乘法,除法 |
| +, -, || | 加,減,并置 |
|
=, <, >, <=, >=, <>, !=, ~=, ^=, IS NULL, LIKE, BETWEEN, IN |
比較 |
| NOT | 邏輯否定 |
| AND | 關(guān)聯(lián) |
| OR | 包含 |