在本章中,我们将讨论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)不成立. |
运算符 | 描述 | 示例 |
LIKE | LIKE运算符将字符,字符串或CLOB值与模式进行比较,如果是,则返回TRUE值与模式匹配,如果不匹配则为FALSE. | 如果'Zara Ali'像'Z%A_i'那样返回布尔值true,而'Nuha Ali'喜欢'Z%A_i'返回布尔值false. |
BETWEEN | BETWEEN运算符测试值是否在指定范围内.x BETWEEN a AND b表示x> = a和x< = b. | 如果x = 10则x,5到20之间的x返回true,x在5之间10返回true,但11到20之间的x返回false. |
IN | IN运算符测试集合成员资格.x IN(set)表示x等于任何成员of set. | 如果x ='m'那么,x in('a','b','c')返回布尔值false但是x in('m','n','o')返回布尔值true. |
IS NULL | 如果操作数为NULL,则IS NULL运算符返回BOOLEAN值TRUE,如果是,则返回FALSE非NULL.涉及NULL值的比较总是产生NULL. | 如果x ='m',则'x为null'返回布尔值false./td> |
下表显示了PL/SQL支持的逻辑运算符所有这些运算符都用于布尔操作数并产生布尔结果.让我们假设变量A 保持为真,变量B 保持为假,然后是 :
<a href="https://img01.yuandaxia.cn/Content/img/tutorials/plsql/plsql_logical_operators.htm" title=logical Operators in PL/SQL">显示示例
运算符 | 描述 | 示例 |
---|---|---|
和 | 调用逻辑AND运算符.如果两个操作数均为true,则条件变为true. | (A和B)为假. |
或 | 调用逻辑OR运算符.如果两个操作数中的任何一个为真,则condition变为true. | (A或B)为真. |
not | 调用逻辑NOT运算符.用于反转其操作数的逻辑状态.如果条件是true然后Logical NOT运算符将使其为false. | not(A和B)为真. |
运算符优先级决定了表达式中术语的分组.这会影响表达式的计算方式.某些运算符的优先级高于其他运算符.例如,乘法运算符的优先级高于加法运算符.
例如, x = 7 + 3 * 2 ;这里, x 被分配 13 ,而不是20,因为operator *的优先级高于+,所以它首先乘以 3 * 2 然后加入 7 .
这里,优先级最高的运算符出现在表的顶部,最低的运算符出现在底部.在表达式中,优先级更高的运算符wi将首先进行评估.
运算符的优先级如下:=,<,>,< =,> =,<>,!=,〜= ,^ =,IS NULL,LIKE,BETWEEN,IN.
运算符 | 操作 |
---|---|
** | exponentiation |
+, - | 标识,否定 |
*,/ | 乘法,除法 |
+, - ,|| | 加法,减法,连接 |
比较 | |
NOT | 逻辑否定 |
AND | 合作 |
OR | 包含 |