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

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

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。image.png

1.2、关系运算符

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

image.png

1.3、比较运算符

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

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

 

1.4、逻辑运算符

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

2、PL/SQL运算符优先级

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

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

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

运算符的优先级如下:=,<,>,<=,>=,<>,!=,〜=,^=,IS NULL,LIKE,BETWEEN,IN。

image.png

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') ;


相关文章
|
12天前
|
SQL Oracle 安全
Oracle的PL/SQL游标异常处理:从“惊涛骇浪”到“风平浪静”
【4月更文挑战第19天】Oracle PL/SQL游标异常处理确保了在数据操作中遇到的问题得以优雅解决,如`NO_DATA_FOUND`或`TOO_MANY_ROWS`等异常。通过使用`EXCEPTION`块捕获并处理这些异常,开发者可以防止程序因游标问题而崩溃。例如,当查询无结果时,可以显示定制的错误信息而不是让程序终止。掌握游标异常处理是成为娴熟的Oracle数据管理员的关键,能保证在复杂的数据环境中稳健运行。
|
12天前
|
SQL Oracle 安全
Oracle的PL/SQL异常处理方法:守护数据之旅的“魔法盾”
【4月更文挑战第19天】Oracle PL/SQL的异常处理机制是保障数据安全的关键。通过预定义异常(如`NO_DATA_FOUND`)和自定义异常,开发者能优雅地管理错误。异常在子程序中抛出后会向上传播,直到被捕获,提供了一种集中处理错误的方式。理解和善用异常处理,如同手持“魔法盾”,确保程序在面对如除数为零、违反约束等挑战时,能有效保护数据的完整性和程序的稳定性。
|
12天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL中FOR语句循环游标的奇幻之旅
【4月更文挑战第19天】在Oracle PL/SQL中,FOR语句与游标结合,提供了一种简化数据遍历的高效方法。传统游标处理涉及多个步骤,而FOR循环游标自动处理细节,使代码更简洁、易读。通过示例展示了如何使用FOR循环游标遍历员工表并打印姓名和薪资,对比传统方式,FOR语句不仅简化代码,还因内部优化提升了执行效率。推荐开发者利用这一功能提高工作效率。
|
12天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
12天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
19天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
61 10
|
29天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
30 0
|
27天前
|
SQL 关系型数据库 MySQL
SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', sys...
SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', sys...
|
19天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
91 6

推荐镜像

更多