Plsql 简明教程

PL/SQL - Operators

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

  1. Arithmetic operators

  2. Relational operators

  3. Comparison operators

  4. Logical operators

  5. 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, FALSENULL

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