Oracle模糊查询

本文介绍了Oracle数据库中如何进行模糊查询,包括使用like和escape关键字,以及如何结合通配符进行筛选。举例展示了查询姓张的雇员、年龄在20到30岁的雇员以及昵称中包含%的雇员的方法,并提到了正则函数regexp_like的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle模糊查询

案例

Oracle数据库中存在表格employee,存放了公司雇员信息,表格内容如下:

雇员ID (ID)雇员名称 (NAME)雇员年龄 (AGE)雇员昵称(NICK)
001周一18周%18
002张一山24张24
003周二天28周28
004张二26张26

现在需要从表格中查询所有姓张的雇员,可以使用Oracle模糊查询。

1. 查询所有姓张的雇员

select * from employee e where e.name like '张%';

2. 查询所有年龄为20到30岁之间的雇员

select * from employee e where e.age like '2_';

当然,也可以通过数值区间来查询符合条件的雇员,这里着重介绍模糊查询,就不作展示了。

3. 查询所有昵称中带有%的雇员

select * from employee e where e.nick like '%\%%' escape '\';

案例分析

Oracle模糊查询使用关键字likeescape,下表分别对这两个关键字进行说明:

关键字说明
like关键字后面跟着带有通配符的字符串,用来与查询内容进行匹配。
escape关键字后面跟着转义字符(可以是任意字符),声明匹配字符串中的转义字符,对特殊符号进行转义。比如’%‘的前面有转义符,则该’%'为普通字符,而非通配符。

介绍关键字的时候已经提到了通配符,用于设置模糊匹配条件,常用的通配符如下表:

通配符说明
%百分号,匹配任意数量(包括0个)任意字符。
_下划线,匹配单个任意字符。

Oracle的模糊查询的通配符与我们常用的正则表达式类似,不过又有些不同。已经习惯了使用正则表达式的同学,也可以直接使用Oracle提供的正则函数regexp_like(column, ‘regex’)。比如上述案例#1,使用正则函数,可以写成:

select * from employee e where regexp_like(e.name, '^张.*');

总结

Oracle模糊查询使用关键字likeescape,也可以使用正则函数regexp_like

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值