Oracle PL/SQL – 运算符
简述
在本章中,我们将讨论 PL/SQL 中的运算符。运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。PL/SQL 语言具有丰富的内置运算符,并提供以下类型的运算符 -
- 算术运算符
- 关系运算符
- 比较运算符
- 逻辑运算符
- 字符串运算符
在这里,我们将一一了解算术、关系、比较和逻辑运算符。字符串运算符将在后面的章节中讨论 -PL/SQL - Strings.
算术运算符
下表显示了 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) 是不正确的。 |
|
!= <> ~= |
检查两个操作数的值是否相等,如果值不相等则条件为真。 | (A != B) 是真的。 |
| > | 检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 | (A > B) 为假。 |
| < | 检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 | (A < B) 为真。 |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 | (A >= B) 为假。 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件成立。 | (A <= B) 为真 |
比较运算符
比较运算符用于将一个表达式与另一个表达式进行比较。结果总是要么TRUE, FALSE 要么 NULL.
显示示例
| 操作符 | 描述 | 例子 |
|---|---|---|
| LIKE | LIKE 运算符将字符、字符串或 CLOB 值与模式进行比较,如果该值与模式匹配,则返回 TRUE,否则返回 FALSE。 | 如果 'Alex Moo' like 'Z% A_i' 返回布尔值 true,而 'Nuha Moo' like 'Z% A_i' 返回布尔值 false。 |
| BETWEEN | BETWEEN 运算符测试一个值是否在指定范围内。x BETWEEN a AND b 表示 x >= a 且 x <= b。 | 如果 x = 10,则 5 到 20 之间的 x 返回 true,5 到 10 之间的 x 返回 true,但 11 到 20 之间的 x 返回 false。 |
| IN | IN 运算符测试集成员资格。x IN (set) 表示 x 等于 set 的任何成员。 | 如果 x = 'm' 那么 x in ('a', 'b', 'c') 返回布尔值 false 但 x in ('m', 'n', 'o') 返回布尔值 true。 |
| IS NULL | 如果操作数为 NULL,则 IS NULL 运算符返回 BOOLEAN 值 TRUE;如果操作数不是 NULL,则返回 FALSE。涉及 NULL 值的比较总是产生 NULL。 | 如果 x = 'm',则 'x is null' 返回布尔值 false。 |
逻辑运算符
下表显示了 PL/SQL 支持的逻辑运算符。所有这些运算符都作用于布尔操作数并产生布尔结果。让我们假设variable A 成立并且 variable B 为假,然后 -
显示示例
| 操作符 | 描述 | 例子 |
|---|---|---|
| AND | 称为逻辑 AND 运算符。如果两个操作数都为真,则条件为真。 | (A 和 B) 是错误的。 |
| OR | 称为逻辑 OR 运算符。如果两个操作数中的任何一个为真,则条件变为真。 | (A 或 B) 是正确的。 |
| NOT | 称为逻辑非运算符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符将使其为假。 | 不是(A 和 B)是真的。 |
PL/SQL 运算符优先级
运算符优先级决定了表达式中术语的分组。这会影响表达式的计算方式。某些运算符的优先级高于其他运算符;例如,乘法运算符的优先级高于加法运算符。
例如, x = 7 + 3 * 2; 这里,x 被安排了 13, 不是 20 因为运算符 * 的优先级高于 +,所以它首先乘以 3*2 然后加入 7.
在这里,具有最高优先级的运算符出现在表格的顶部,具有最低优先级的运算符出现在底部。在表达式中,优先级更高的运算符将首先被评估。
运算符的优先级如下:=、<、>、<=、>=、<>、!=、~=、^=、IS NULL、LIKE、BETWEEN、IN。
显示示例
| 操作符 | 操作 |
|---|---|
| ** | 取幂 |
| +, - | 标识,取反 |
| *, / | 乘法、除法 |
| +, -, || | 加法、减法、串联 |
| 比较 | |
| NOT | 逻辑否定 |
| AND | 逻辑与 |
| OR | 逻辑或 |