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 包含
广告