PL/SQL - 运算符

在本章中,我们将讨论 PL/SQL 中的运算符。 运算符是告诉编译器执行特定的数学或逻辑操作的符号。 PL/SQL语言内置丰富的运算符,提供以下几种运算符 −

  • 算术运算符
  • 关系运算符
  • 比较运算符
  • 逻辑运算符
  • 字符串运算符

在这里,我们将一一了解算术、关系、比较和逻辑运算符。 字符串运算符将在后面的章节中讨论 − PL/SQL - 字符串.


算术运算符

下表显示了 PL/SQL 支持的所有算术运算符。 让我们假设 variable A 持有 10 而 variable B 持有 5,那么 −

显示示例

运算符 描述 示例
+ 添加两个操作数 A + B 将得到 15
- 从第一个操作数中减去第二个操作数 A - B 将得到 5
* 两个操作数相乘 A * B 将得到 50
/ 分子除以分母 A / B 将得到 2
** 指数运算符,将一个操作数提高到另一个操作数的幂 A ** B 将得到 100000

关系运算符

关系运算符比较两个表达式或值并返回布尔结果。 下表显示了 PL/SQL 支持的所有关系运算符。 让我们假设 variable A 持有 10 而 variable B 持有 20,然后 −

显示示例

运算符 描述 示例
= 检查两个操作数的值是否相等,如果是则条件为真。 (A = B) is not true.

!=

<>

~=

检查两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) is true.
> 检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 (A > B) is not true.
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) is true.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) is not true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) is true

比较运算符

比较运算符用于将一个表达式与另一个表达式进行比较。 结果总是 TRUE、FALSENULL

显示示例

运算符 描述 示例
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 在 5 和 20 之间返回 true,x 在 5 和 10 之间返回 true,但是 x 在 11 和 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 时返回 BOOLEAN 值 TRUE,如果不是 NULL,则返回 FALSE。 涉及 NULL 值的比较总是产生 NULL。 如果 x = 'm',则 'x is null' 返回布尔值 false。

逻辑运算符

下表显示了 PL/SQL 支持的逻辑运算符。 所有这些运算符都对布尔操作数起作用并产生布尔结果。 让我们假设 variable A 为真,variable B 为假,那么 −

显示示例

运算符 描述 示例
and 称为逻辑与运算符。 如果两个操作数都为真,则条件为真。 (A and B) is false.
or 称为逻辑或运算符。 如果两个操作数中的任何一个为真,则条件为真。 (A or B) is true.
not 称为逻辑非运算符。 用于反转其操作数的逻辑状态。 如果条件为真,则逻辑非运算符将使其为假。 not (A and B) is true.

PL/SQL 运算符优先级

运算符优先级确定表达式中术语的分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。

例如,x = 7 + 3 * 2; 这里,x 被赋值为 13,而不是 20,因为运算符 * 的优先级高于 +,所以它首先与 3*2 相乘,然后再与 7 相加。

在这里,具有最高优先级的运算符出现在表格的顶部,那些具有最低优先级的出现在底部。 在表达式中,优先级较高的运算符将首先被计算。

运算符的优先级如下: =, <, >, <=, >=, <>, !=, ~=, ^=, IS NULL, LIKE, BETWEEN, IN.

显示示例

运算符 操作
** exponentiation
+, - identity, negation
*, / multiplication, division
+, -, || addition, subtraction, concatenation
comparison
NOT logical negation
AND conjunction
OR inclusion