PL/SQL - 運算子



本章將討論 PL/SQL 中的運算子。運算子是一個符號,它告訴編譯器執行特定的數學或邏輯操作。PL/SQL 語言富含內建運算子,並提供以下型別的運算子:

  • 算術運算子
  • 關係運算符
  • 比較運算子
  • 邏輯運算子
  • 字串運算子

這裡,我們將逐一瞭解算術、關係、比較和邏輯運算子。字串運算子將在後面的章節中討論 - **PL/SQL - 字串**。

算術運算子

下表顯示了 PL/SQL 支援的所有算術運算子。假設**變數 A** 為 10,**變數 B** 為 5,則:

顯示示例

運算子 描述 示例
+ 加法運算,將兩個運算元相加 A + B 將得到 15
- 減法運算,從第一個運算元中減去第二個運算元 A - B 將得到 5
* 乘法運算,將兩個運算元相乘 A * B 將得到 50
/ 除法運算,用分子除以分母 A / B 將得到 2
** 冪運算子,將一個運算元提高到另一個運算元的冪 A ** B 將得到 100000

關係運算符

關係運算符比較兩個表示式或值,並返回布林結果。下表顯示了 PL/SQL 支援的所有關係運算符。假設**變數 A** 為 10,**變數 B** 為 20,則:

顯示示例

運算子 描述 示例
= 檢查兩個運算元的值是否相等,如果相等則條件為真。 (A = B) 為假。

!=

<>

~=

檢查兩個運算元的值是否不相等,如果不相等則條件為真。 (A != B) 為真。
> 檢查左運算元的值是否大於右運算元的值,如果是則條件為真。 (A > B) 為假。
< 檢查左運算元的值是否小於右運算元的值,如果是則條件為真。 (A < B) 為真。
>= 檢查左運算元的值是否大於或等於右運算元的值,如果是則條件為真。 (A >= B) 為假。
<= 檢查左運算元的值是否小於或等於右運算元的值,如果是則條件為真。 (A <= B) 為真

比較運算子

比較運算子用於比較一個表示式與另一個表示式。結果始終為**TRUE、FALSE** 或**NULL**。

顯示示例

運算子 描述 示例
LIKE LIKE 運算子將字元、字串或 CLOB 值與模式進行比較,如果值與模式匹配則返回 TRUE,否則返回 FALSE。 如果 'Zara Ali' like 'Z% A_i' 返回布林值 true,而 'Nuha Ali' like 'Z% A_i' 返回布林值 false。
BETWEEN BETWEEN 運算子測試值是否在指定的範圍內。x BETWEEN a AND b 表示 x >= a 且 x <= b。 如果 x = 10,則 x between 5 and 20 返回 true,x between 5 and 10 返回 true,但 x between 11 and 20 返回 false。
IN IN 運算子測試集合成員資格。x IN (set) 表示 x 等於集合的任何成員。 如果 x = 'm',則 x in ('a', 'b', 'c') 返回布林值 false,但 x in ('m', 'n', 'o') 返回布林值 true。
IS NULL IS NULL 運算子如果其運算元為 NULL 則返回布林值 TRUE,如果不為 NULL 則返回 FALSE。涉及 NULL 值的比較始終產生 NULL。 如果 x = 'm',則 'x is null' 返回布林值 false。

邏輯運算子

下表顯示了 PL/SQL 支援的邏輯運算子。所有這些運算子都作用於布林運算元併產生布爾結果。假設**變數 A** 為 true,**變數 B** 為 false,則:

顯示示例

運算子 描述 示例
and 稱為邏輯 AND 運算子。如果兩個運算元都為真,則條件為真。 (A and B) 為假。
or 稱為邏輯 OR 運算子。如果兩個運算元中的任何一個為真,則條件為真。 (A or B) 為真。
not 稱為邏輯 NOT 運算子。用於反轉其運算元的邏輯狀態。如果條件為真,則邏輯 NOT 運算子將使其變為假。 not (A and B) 為真。

PL/SQL 運算子優先順序

運算子優先順序決定了表示式中術語的分組。這會影響表示式的計算方式。某些運算子比其他運算子具有更高的優先順序;例如,乘法運算子比加法運算子具有更高的優先順序。

例如,**x = 7 + 3 * 2**;這裡,**x** 被賦值為**13**,而不是 20,因為運算子 * 的優先順序高於 +,所以它首先與**3*2** 相乘,然後加到**7** 中。

這裡,優先順序最高的運算子出現在表的最上面,優先順序最低的運算子出現在表的最下面。在表示式中,將首先計算優先順序較高的運算子。

運算子的優先順序如下:=, <, >, <=, >=, <>, !=, ~ =, ^=, IS NULL, LIKE, BETWEEN, IN。

顯示示例

運算子 操作
** 冪運算
+, - 恆等式,否定
*, / 乘法,除法
+, -, || 加法,減法,連線
比較
NOT 邏輯否定
AND 合取
OR 包含
廣告