Plsql 简明教程
PL/SQL - Operators
在本章中,我们将讨论 PL/SQL 中的操作符。操作符是一个符号,告诉编译器执行特定的数学或逻辑操作。PL/SQL 语言中内置了丰富的操作符,并提供了以下类型的操作符 −
-
Arithmetic operators
-
Relational operators
-
Comparison operators
-
Logical operators
-
String operators
在这里,我们将逐个了解算术、关系、比较和逻辑操作符。字符串操作符将在本章节后面讨论 − PL/SQL - Strings 。
Arithmetic Operators
以下表格显示了 PL/SQL 支持的所有算术运算符。我们假设 variable A 含 10, variable B 含 5,则 −
Operator |
Description |
Example |
+ |
Adds two operands |
A + B 将产生 15 |
- |
从第一个操作数中减去第二个操作数 |
A - B 将产生 5 |
* |
Multiplies both operands |
A * B 将产生 50 |
/ |
Divides numerator by de-numerator |
A / B 将产生 2 |
** |
指数运算符,将一个操作数提升到另一个操作数的幂 |
A ** B 将产生 100000 |
Relational Operators
关系运算符比较两个表达式或值并返回布尔结果。以下表格显示了 PL/SQL 支持的所有关系运算符。我们假设 variable A 含 10, variable B 含 20,则 −
Operator |
Description |
Example |
= |
检查两个操作数的值是否相等,如果相等,则条件变为真。 |
(A = B) 为假。 |
!= <> ~= |
检查两个操作数的值是否相等,如果值不相等,则条件变为真。 |
(A != B) 为真。 |
> |
检查左操作数的值是否大于右操作数的值,如果大于,则条件变为真。 |
(A > B) 不为真。 |
< |
检查左操作数的值是否小于右操作数的值,如果小于,则条件变为真。 |
(A < B) 为真。 |
>= |
检查左操作数的值是否大于或等于右操作数的值,如果大于或等于,则条件变为真。 |
(A >= B) 不为真。 |
⇐ |
检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件变为真。 |
(A ⇐ B) 为真 |
Comparison Operators
比较运算符用于将一个表达式与另一个表达式进行比较。结果始终为 TRUE, FALSE 或 NULL 。
Operator |
Description |
Example |
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 等于 set 的任何成员。 |
如果 x = 'm',则 x in ('a', 'b', 'c') 返回布尔 false,但 x in ('m', 'n', 'o') 返回布尔 true。 |
IS NULL |
IS NULL 运算符在其操作数为空值时返回 BOOLEAN 值 TRUE,否则返回 FALSE。涉及空值比较时总是生成空值。 |
如果 x = 'm',则 'x is null' 返回布尔值 false。 |
Logical Operators
下表显示 PL/SQL 支持的逻辑运算符。所有这些运算符都针对布尔操作数工作,并产生布尔结果。让我们假设 variable A 为真, variable B 为假,那么 −
Operator |
Description |
Examples |
and |
称为逻辑 AND 运算符。如果两个操作数都为真,则条件变为真。 |
(A and B) 为假。 |
or |
称为逻辑 OR 运算符。如果两个操作数中的任何一个为真,则条件变为真。 |
(A or B) 为真。 |
not |
称为逻辑 NOT 运算符。用于反转其操作数的逻辑状态。如果一个条件为真,则逻辑 NOT 运算符会使其变为假。 |
not (A and B) 为真。 |
PL/SQL Operator Precedence
运算符优先级确定表达式中项的分组。这会影响表达式的求值方式。某些运算符比其他运算符具有更高的优先级;例如,乘法运算符的优先级高于加法运算符。
例如, x = 7 + 3 * 2 ;在这里, x 被赋值为 13 ,而不是 20,因为运算符 * 的优先级高于 +,因此它首先与 3*2 相乘,然后再加到 7 中。
此处,优先级最高的运算符显示在表顶部,优先级最低的运算符显示在表底部。在表达式中,将首先评估优先级较高的运算符。
运算符的优先级如下:=、<、>、⇐、>=、<>、!=、~=、^=、IS NULL、LIKE、BETWEEN、IN。
Operator |
Operation |
** |
exponentiation |
+, - |
identity, negation |
*, / |
multiplication, division |
+, -, |
|
addition, subtraction, concatenation |
|
comparison |
|
NOT |
logical negation |
AND |
conjunction |
OR |
inclusion |