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、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 在 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 |