PLSQL 模糊查询语法

本文介绍了PLSQL中的模糊查询语法,包括LIKE操作符和通配符%及_的使用,同时讲解了查询优先级、转义字符以及宏代换的概念。示例查询展示了各种模糊匹配的场景,如查询名字中包含特定字符、以特定字符开头或结尾的记录。

优先级:计算的顺序
1.小括号
2.乘除
3.加减,连接符
4.比较符
5.is null,in
6.between and 
7.not
8.and
9.or

小括号优先级最高,or的优先级最低
可以用小括号来改变优先级
同一优先级从左往右依次计算
如果不记得优先级顺序,记得加括号

((A and B) or (C and D)) 
((A or (B  and C)) or D) 


--简单查询
--限定查询

--模糊查询
语法:
select 要查询的内容
from 数据来源
where 列 like '匹配的内容'

通配符:
%:0-多个字符
_:任意单个字符


--查询员工姓名中包含S的员工信息
select *
from emp
where ename like '%S%'

--查询员工姓名S开头的员工信息
select *
from emp
where ename like 'S%'

--查询名字第二个字符是L的员工信息
select *
from emp
where ename like '_L%'

--查询名字是四个字符的员工信息
select *
from emp
where ename like '____'

--查询J开头名字总长度是5的员工信息
select *
from emp
where ename like 'J____'

--查询员工姓名J开头S结尾的员工信息
select *
from emp
where ename like 'J%S'


--查询员工姓名不包含A也不包含S的员工信息
select *
from emp
where not ename like '%A%' and ename not like '%S%'


--转义

--双写转义
select ''''
from dual

宏代换:&

select &a,'&&b'
from dual

2.q'{}'
在大括号内的所有内容取消特殊含义,不能转义宏代换

select q'{a'''}'
from dual


3.escape转义     用于模糊查询的转义

select *
from A

--查询name列中_开头的name      
select name
from A
where name like '\_%' escape '\'   


--查询A表中name列_开头的行
select *
from A
where name like '\_%' escape '\'

--查询A表中name列第二位是%的行
select *
from A
where name like '_!%%' escape '!'


--查询A表中%开头的行
select *
from A
where name like '+%%' escape '+'


小结
┌简单查询┌select 要查询的内容 from 数据来源
│        ├别名┌1.数字开头的不能作为别名
│        │    ├2.包含特殊符号的不能作为别名
│        │    └3.严格区分大小写的不能作为别名
│        ├如果必须违反以上规则必须加双引号
│        ├数据类型┌1.数值型  number  靠右  直接写
│        │        ├2.字符型  char|varchar|varchar2  靠左   用单引号引起来
│        └        └3.日期型  date '年-月-日'  有小日历
├限定查询┌语法:select 要查询的内容 from 数据来源  where 限定条件   (列 操作符 值)
│        ├操作符┌比较运算符:>  <  =  >=  <=  !=|<>
│        │      ├逻辑运算符:and  or  not
│        │      ├算术运算符:+  - * /
│        │      ├between 小值 and 大值     包含两端值
│        │      ├in   在什么里面    not in 不在什么里面
│        │      ├||   连接字符串    结果为字符型
│        │      └is null|is not null   是空|不是空
│        └隐式转换:纯数字的字符串在参与计算时会自动转为数值型进行计算,将数值型的数据转为字符型
└模糊查询┌语法:select 要查询的内容 from 数据来源  where 列 like '匹配内容'
         ├通配符┌%    0-多个字符
         │      └_    任意单个字符
         ├转义┌1.双写转义
         │    ├2.q'{}'
         └    └3.escape '\'


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值