当前位置: 首页>前端>正文

POSTGRESQL 除法进一 plsql除法运算

Oracle PL/SQL 第三章--运算符与表达式

目录

Oracle PL/SQL 第三章--运算符与表达式

1、运算符分类

1.1、算术运算符

1.2、关系运算符

1.3、比较运算符

1.4、逻辑运算符

2、PL/SQL运算符优先级

3、运算表达式

3.1、变量赋值运算

3.2、字符与数字运算的特点

3.3、数据库赋值运算

3.4、类型转换的赋值运算


1、运算符分类

运算符是一个符号,它告诉编译器执行指定的数学或者逻辑操作。在PL/SQL中也有丰富的几种内置运算符,有如下几个类型:

  1. 算术运算符
  2. 关系运算符
  3. 比较运算符
  4. 逻辑运算符

1.1、算术运算符

在这里我们假设 X 的值为 2 ,Y 的值为 2。

运算符

描述

案例说明

+

两个操作数相加

X + Y = 4

-

从第一个减去第二个操作数

X - Y = 0

*

将两个操作数相乘

X * Y = 4

/

从第一个除以第二个操作数

X / Y = 1

**

指数运算符,提出一个操作数到其他的幂值

X ** Y = 4

 

1.2、关系运算符

关系运算符比较两个表达式或值,并返回一个布尔结果。这里我们假设X = 2, Y = 3。

运算符

描述

案例说明

=

比较两个值或表达式是否相等

X = Y (false)

!=,<>,~=,^=

比较两个值或表达式是否不相等

X !=Y (true)

<

比较左边的值或表达式是否小于右边

X < Y (true)

>

比较左边的值或表达式是否大于右边

X > Y (false)

<=

比较左边的值或表达式是否小于或等于右边

X <= Y (true)

>=

比较左边的值或表达式是否大于或等于右边

X >= Y (false)

 

1.3、比较运算符

比较运算符是用来将一个表达式与另一个表达式作比较,其结果为true,false 或 null。

运算符

描述

案例说明

like

判断该值与一个自定义的规则是否匹配。

X = 'g' , X like '%g_' 中 (true)

between...and

判断该值是否在设定值的范围内。

X = 3, X between 1 and 5中 (true)

in

判断该值是否属于一个集合的元素或子集。

X = 'm', X in ('a','b')中(false)

in

判断值是否是一个集合中的元素或子集。

 

is null

判断该值是否为空

X = 'a',X is null 中 (false)

is not null

判断该值不为空

X = ' ', X is not null 中(false)

提示:在PL/SQL中变量赋值一个空字符串时,默认为null。

 

1.4、逻辑运算符

使用布尔运算符并产生布尔运算结果。我们在这里假设 X = true,Y = false。

运算符

描述

案例说明

and

逻辑与,如果两个操作数都为真,则条件成立。

X and Y (false)

or

逻辑或,如果两个操作数中的任何一个为真,则条件成为真。

X or Y (true)

not

逻辑非,用于反转其操作数的逻辑状态。如果条件为真,则逻辑NOT运算符将使其为false

not X (false)


 

2、PL/SQL运算符优先级

运算符优先级决定表达式中术语的分组。这会影响表达式的评估求值顺序。某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。

例如,x = 7 + 3 * 2; 这里,求值结果x的值为13,而不是20,因为运算符 *的优先级高于+,所以它首先被乘以3 * 2,然后再加上7

在这里,优先级最高的运算符出现在表的顶部,最底层的运算符出现在底部。在一个表达式中,将首先评估求值较高优先级的运算符。

运算符的优先级如下:=<><=>=<>!=〜=^=IS NULLLIKEBETWEENIN

运算符

操作描述

**

指数冥运算符

+,-

标识符,负数

*,/

乘法,除法

+,- ,||

加,减,连接

not

逻辑非

and

逻辑与

or

逻辑或


 

3、运算表达式

 

3.1、变量赋值运算

在PL/SQL中,变量赋值运算符是 := ,它的语法如下:

variable := expression ;

variable是一个变量,expression是一个表达式。

 

3.2、字符与数字运算的特点

空值 + 数字 = 空值 ==> null + <Number> = null ;

空值 || 字符串 = 字符串 ==> null || <Varchar2> = <Varchar2>;

 

3.3、数据库赋值运算

数据库赋值是通过select into 语句来完成的,一般要求被赋值的变量与SELECT中的列名要一一对应。

DECLARE
  emp_id    emp.empno%TYPE :=7788;
  emp_name  emp.ename%TYPE;
  wages     emp.sal%TYPE;
BEGIN
  SELECT ename, NVL(sal,0) + NVL(comm,0) INTO emp_name, wages
  FROM emp WHERE empno = emp_id;
  DBMS_OUTPUT.PUT_LINE(emp_name||'----'||to_char(wages));
END;

提示:select into 语句中不能赋值给布尔类型的变量。

 

3.4、类型转换的赋值运算

1、char 转 number,使用 TO_NUMBER内置函数完成转换。

v_total := TO_NUMBER('100.0') + sal;

2、number 转 char,使用TO_CHAR内置函数完成转换。

v_comm := TO_CHAR('123.45') || '元' ;

3、字符 转 日期,使用TO_DATE内置函数完成转换。

v_date := TO_DATE('2001.07.03','yyyy.mm.dd');

4、日期 转 字符,使用TO_CHAR内置函数完成转换。

v_to_day := TO_CHAR(SYSDATE, 'yyyy.mm.dd hh24:mi:ss') ;

 


https://www.xamrdz.com/web/2n31937782.html

相关文章: