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.1、算术运算符
在这里我们假设 X 的值为 2 ,Y 的值为 2。
1.2、关系运算符
关系运算符比较两个表达式或值,并返回一个布尔结果。这里我们假设X = 2, Y = 3。
1.3、比较运算符
比较运算符是用来将一个表达式与另一个表达式作比较,其结果为true,false 或 null。
提示:在PL/SQL中变量赋值一个空字符串时,默认为null。
1.4、逻辑运算符
使用布尔运算符并产生布尔运算结果。我们在这里假设 X = true,Y = false。
2、PL/SQL运算符优先级
运算符优先级决定表达式中术语的分组。这会影响表达式的评估求值顺序。某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。
例如,x = 7 + 3 * 2; 这里,求值结果x的值为13,而不是20,因为运算符 *的优先级高于+,所以它首先被乘以3 * 2,然后再加上7。
在这里,优先级最高的运算符出现在表的顶部,最底层的运算符出现在底部。在一个表达式中,将首先评估求值较高优先级的运算符。
运算符的优先级如下:=,<,>,<=,>=,<>,!=,〜=,^=,IS NULL,LIKE,BETWEEN,IN。
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') ;