Oracle PL/SQL基础语法学习13:比较运算符
系列文章目录
Oracle PL/SQL基础语法学习12:短路求值
Oracle PL/SQL基础语法学习13:比较运算符
Oracle PL/SQL基础语法学习14:BOOLEAN表达式
文章目录
- 系列文章目录
- Oracle PL/SQL基础语法学习13:比较运算符
- 比较运算符介绍
- 官方文档比较运算符代码例
- Example 2-43 Relational Operators in Expressions
- Example 2-44 LIKE Operator in Expression
- Example 2-45 Escape Character in Pattern
- Example 2-46 BETWEEN Operator in Expressions
- Example 2-47 IN Operator in Expressions
- Example 2-48 IN Operator with Sets with NULL Values
【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。
编辑|SQL和数据库技术(ID:SQLplusDB)
Oracle PL/SQL基础语法学习13:比较运算符
比较运算符介绍
比较运算符是 PL/SQL 语言中的基本元素之一,它们被用于比较两个变量或表达式的值。在 PL/SQL 中,比较运算符是十分常见的,因此熟练运用它们能够提高代码的开发效率。
PL/SQL 中提供了六个比较运算符:=
, !=
(或 <>
),<
, <=
, >
, >=
。这些运算符可以用在各种数据类型上,包括数字、字符、日期等类型。下面是一些示例:
DECLAREa NUMBER := 100;b NUMBER := 50;c VARCHAR2(10) := 'hello';
BEGINIF a > b THENDBMS_OUTPUT.PUT_LINE('a is greater than b');END IF;IF c != 'world' THENDBMS_OUTPUT.PUT_LINE('c is not equal to world');END IF;IF SYSDATE >= TO_DATE('2022-01-01', 'YYYY-MM-DD') THENDBMS_OUTPUT.PUT_LINE('It is in or after the year 2022');END IF;
END;
输出结果:
SQL> set serverout on
SQL> /
a is greater than b
c is not equal to world
It is in or after the year 2022PL/SQL 过程已成功完成。
在上面的示例中,我们分别使用了 <
, !=
(或 <>
)和 >=
三种比较运算符,用于比较数字、字符和日期类型的数据。当条件成立时,输出相应的信息。
需要注意的是,在比较字符类型的数据时,应该使用单引号将其括起来,否则编译器将会把它们看做标识符。同时,日期类型的数据需要使用 TO_DATE
函数将字符串转换为日期类型。
此外,还有一种比较运算符叫做 IS NULL
,用于判断变量或表达式是否为空。例如:
DECLAREa NUMBER;
BEGINIF a IS NULL THENDBMS_OUTPUT.PUT_LINE('a is null');END IF;
END;
输出结果:
SQL> set serverout on
SQL> /
a is nullPL/SQL 过程已成功完成。
在上面示例中,当 a
为空时,条件成立,输出信息。
除了前面提到的六种比较运算符,PL/SQL 还提供了三种其他比较运算符:LIKE
、BETWEEN
和 IN
。这些运算符同样广泛应用于 PL/SQL 中的各种数据类型。下面,我们来分别介绍这三种运算符的使用方法。
- LIKE 运算符
LIKE
运算符用于在字符类型数据中进行模糊匹配。例如,我们可以使用 %
来代表匹配任意字符,使用 _
来代表匹配单个字符。下面是一个示例:
DECLAREname VARCHAR2(10) := 'Mary';
BEGINIF name LIKE 'Ma%' THENDBMS_OUTPUT.PUT_LINE('name starts with Ma');END IF;IF name LIKE '%r%' THENDBMS_OUTPUT.PUT_LINE('name contains r');END IF;IF name LIKE '__ry' THENDBMS_OUTPUT.PUT_LINE('name has four characters with ry as the last two');END IF;
END;
输出结果:
SQL> /
name starts with Ma
name contains r
name has four characters with ry as the last twoPL/SQL 过程已成功完成。
在上面的示例中,我们使用了 %
和 _
两个通配符来匹配字符类型数据中的内容。当条件成立时,输出相应的信息。
- BETWEEN 运算符
BETWEEN
运算符用于检查一个值是否在两个指定的值范围内。下面是一个示例:
DECLAREage NUMBER := 20;
BEGINIF age BETWEEN 18 AND 30 THENDBMS_OUTPUT.PUT_LINE('age is between 18 and 30');END IF;
END;
输出结果:
SQL> /
age is between 18 and 30PL/SQL 过程已成功完成。
在上面的示例中,我们使用了 BETWEEN
运算符来检查一个年龄值是否在指定的范围内。当条件成立时,输出相应的信息。
- IN 运算符
IN
运算符用于检查一个值是否在一个指定的值列表内。下面是一个示例:
DECLAREage NUMBER := 15;
BEGINIF age IN (18, 21, 25) THENDBMS_OUTPUT.PUT_LINE('age is 18, 21, or 25');END IF;
END;
在上面的示例中,我们使用了 IN
运算符来检查一个年龄值是否在指定的列表内。当条件成立时,输出相应的信息。
LIKE
、BETWEEN
和 IN
运算符是 PL/SQL 中常用的比较运算符之一,它们分别用于在字符类型数据中进行模糊匹配、检查一个值是否在两个指定的值范围内、检查一个值是否在一个指定的值列表内。
总的来说,比较运算符是 PL/SQL 中的重要组成部分。熟练掌握这些运算符能够帮助我们更快、更准确地开发代码,提高程序的效率。
(注:以上内容包括部分智能聊天机器人生成的内容)
官方文档比较运算符代码例
Example 2-43 Relational Operators in Expressions
BEGINprint_boolean ('(2 + 2 = 4)', 2 + 2 = 4);print_boolean ('(2 + 2 <> 4)', 2 + 2 <> 4);print_boolean ('(2 + 2 != 4)', 2 + 2 != 4);print_boolean ('(2 + 2 ~= 4)', 2 + 2 ~= 4);print_boolean ('(2 + 2 ^= 4)', 2 + 2 ^= 4);print_boolean ('(1 < 2)', 1 < 2);print_boolean ('(1 > 2)', 1 > 2);print_boolean ('(1 <= 2)', 1 <= 2);print_boolean ('(1 >= 1)', 1 >= 1);
END;
/
输出结果:
(2 + 2 = 4) = TRUE
(2 + 2 <> 4) = FALSE
(2 + 2 != 4) = FALSE
(2 + 2 ~= 4) = FALSE
(2 + 2 ^= 4) = FALSE
(1 < 2) = TRUE
(1 > 2) = FALSE
(1 <= 2) = TRUE
(1 >= 1) = TRUE
Example 2-44 LIKE Operator in Expression
DECLAREPROCEDURE compare (value VARCHAR2,pattern VARCHAR2) ISBEGINIF value LIKE pattern THENDBMS_OUTPUT.PUT_LINE ('TRUE');ELSEDBMS_OUTPUT.PUT_LINE ('FALSE');END IF;END;
BEGINcompare('Johnson', 'J%s_n');compare('Johnson', 'J%S_N');
END;
/
输出结果:
TRUE
FALSE
Example 2-45 Escape Character in Pattern
DECLAREPROCEDURE half_off (sale_sign VARCHAR2) ISBEGINIF sale_sign LIKE '50\% off!' ESCAPE '\' THENDBMS_OUTPUT.PUT_LINE ('TRUE');ELSEDBMS_OUTPUT.PUT_LINE ('FALSE');END IF;END;
BEGINhalf_off('Going out of business!');half_off('50% off!');
END;
/
输出结果:
FALSE
TRUE
Example 2-46 BETWEEN Operator in Expressions
BEGINprint_boolean ('2 BETWEEN 1 AND 3', 2 BETWEEN 1 AND 3);print_boolean ('2 BETWEEN 2 AND 3', 2 BETWEEN 2 AND 3);print_boolean ('2 BETWEEN 1 AND 2', 2 BETWEEN 1 AND 2);print_boolean ('2 BETWEEN 3 AND 4', 2 BETWEEN 3 AND 4);
END;
/
输出结果:
2 BETWEEN 1 AND 3 = TRUE
2 BETWEEN 2 AND 3 = TRUE
2 BETWEEN 1 AND 2 = TRUE
2 BETWEEN 3 AND 4 = FALSE
Example 2-47 IN Operator in Expressions
DECLAREletter VARCHAR2(1) := 'm';
BEGINprint_boolean ('letter IN (''a'', ''b'', ''c'')',letter IN ('a', 'b', 'c'));print_boolean ('letter IN (''z'', ''m'', ''y'', ''p'')',letter IN ('z', 'm', 'y', 'p'));
END;
/
输出结果:
letter IN ('a', 'b', 'c') = FALSE
letter IN ('z', 'm', 'y', 'p') = TRUE
Example 2-48 IN Operator with Sets with NULL Values
DECLAREa INTEGER; -- Initialized to NULL by defaultb INTEGER := 10;c INTEGER := 100;
BEGINprint_boolean ('100 IN (a, b, c)', 100 IN (a, b, c));print_boolean ('100 NOT IN (a, b, c)', 100 NOT IN (a, b, c));print_boolean ('100 IN (a, b)', 100 IN (a, b));print_boolean ('100 NOT IN (a, b)', 100 NOT IN (a, b));print_boolean ('a IN (a, b)', a IN (a, b));print_boolean ('a NOT IN (a, b)', a NOT IN (a, b));
END;
/
输出结果:
100 IN (a, b, c) = TRUE
100 NOT IN (a, b, c) = FALSE
100 IN (a, b) = NULL
100 NOT IN (a, b) = NULL
a IN (a, b) = NULL
a NOT IN (a, b) = NULL
参考:
https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/plsql-language-fundamentals.html#GUID-319604CE-DC1C-49DF-9377-007C312F3B32
Oracle PL/SQL基础语法学习13:比较运算符相关推荐
- Oracle PL/SQL基础知识
Oracle PL/SQL基础知识 过程(存储过程) 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out).通过在过程中使用输入参数,可以将数据传递到执行部分 ...
- SQL基础语法学习总结
本篇博客对于sql的基础语法做一个总结,学的东西太多太杂,总是不能记住太多东西,所以很多东西,会用,但是背不下来,毕竟不可能把所有语法和关键字都背完啊,本篇文章呢就用通俗易懂的话做一个基础知识的总结. ...
- oracle pl/sql 基础
PL/SQL笔记 PL/SQL块中只能直接嵌入SELECT,DML(INSERT,UPDATE,DELETE)以及事务控制语句(COMMIT,ROLLBACK,SAVEPOINT),而不能直接嵌入DD ...
- Oracle PL/SQL语句基础学习笔记(上)
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL ...
- ORACLE甚而,PL/SQL基础
Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用 ...
- Oracle PL/SQL语言初级教程(自学)
Oracle PL/SQL语言初级教程 PL/SQL 语言基础 PL/SQL 是一种高性能的基于事务处理的语言,能运行在任何 ORACLE 环境中,支持所有数据处理命令. 通过使用 PL/SQL 程序 ...
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL ...
- SQL高级语法学习总结(一)
基础语法呢,就是简单的对行列进行增删改查,看上一篇.SQL基础语法学习总结,高级用法无非是条件更多,能实现的需求更多,其中涉及到非常多的关键字,本篇博客就进行一下总结.本文所有用法均在mysql环境下 ...
- oracle 的遍历语法,oracle pl/sql之pl/sql语法
一.pl/sql基础 pl/sql分匿名块和命名块. 命名块:存储过程,函数,触发器,包等. pl/sql语句块分3部分: (1)声明部分 (2)可执行部分 (3)异常处理部分 其中可执行部分是语句块 ...
最新文章
- Linux系统中创建虚拟环境详解
- 互联网电商老三巨头在网站推广下逐步退居幕后新三巨头蓄势待发
- .net通过一般处理程序模拟用户控件数据保持、Ispostback 【第二版将html与ashx文件分开】...
- Scala模式匹配:条件守卫
- 雪花算法原理_低照度摄像机原理及影响图像效果因素
- JavaScript事件处理的三种方式(转)
- day39-Spring 05-Spring的AOP:不带有切点的切面
- 超大文本文件怎么打开(使用Hex Editor)
- 小米游戏本0909bios_小米笔记本电脑全家族介绍
- 滤波笔记四:扩展卡尔曼滤波
- 任务:单片机扩展一片DAC0832,实现一路三角波发生器。
- 2015年4月25日浙江省ACM比赛题解
- 常见浏览器对URL的长度限制
- html是什么排列规律,单数和双数是什么 有什么排列规律
- STM32HAL库-移植mbedtls开源库示例(一)
- JavaScript 文件下载解决方案-download.js
- 收藏多个不错的画架构图工具
- 51单片机——存储器
- 调功器PA400X系列选型+个人理解
- poi如何去写入excel文件
热门文章
- MTK6762 gpio控制
- 罗斌_赢在中国第三赛季1080榜单 (2007/09/26 18:59)
- 原假设“截距为0”双侧检验P值是多少_参数假设检验
- 660万明文密码泄露,知名广告公司Clixsence被黑客端了个底朝天
- echarts副标题 富文本标签
- 如何不冒昧的问妹子年龄又能清楚的知道她多大呢?Python来告诉你。
- 如何解决eclipse中没有代码提示的问题
- (转)一些经典的计算机书籍
- 用python对股票进行可视化分析_使用Python对股票进行可视化分析
- 1、网上找的win7 hook winlogon实现禁用CTRL+ALT+DEL