
- PL/SQL 教程
- PL/SQL - 首頁
- PL/SQL - 概述
- PL/SQL - 環境
- PL/SQL - 基本語法
- PL/SQL - 資料型別
- PL/SQL - 變數
- PL/SQL - 常量和字面量
- PL/SQL - 運算子
- PL/SQL - 條件語句
- PL/SQL - 迴圈語句
- PL/SQL - 字串
- PL/SQL - 陣列
- PL/SQL - 過程
- PL/SQL - 函式
- PL/SQL - 遊標
- PL/SQL - 記錄
- PL/SQL - 異常處理
- PL/SQL - 觸發器
- PL/SQL - 包
- PL/SQL - 集合
- PL/SQL - 事務
- PL/SQL - 日期和時間
- PL/SQL - DBMS 輸出
- PL/SQL - 面向物件
- PL/SQL 有用資源
- PL/SQL - 問答
- PL/SQL - 快速指南
- PL/SQL - 有用資源
- PL/SQL - 討論
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 | 包含 |
廣告