Oracle-19-like运算符&转义操作符

一、LIKE比较运算符

LIKE比较运算符也可以称为通配符。LIKE运算符可以使用以下两个通配符“%”“_”,其中“%”代表零个或多个字符,“_”代表一个且只能是一个字符。

 

比如:如果您只记得SALESMAN的第一个字符为S,第三个字符为L,第五个字符为S,那么查询语句该怎么写?

SQL>select empno, ename, sal, job from emp where job like‘S_L_S%’

 

1:在当前student表中查询出所有陈姓学生的信息。

解:先查看student表所有信息


LIKE通配符找出所有陈姓学生的信息


LIKE通配符找出所有姓陈且名字为2个字的学生的信息


二、转义(escape)操作符

提问:如果要查询的字符串中含有“_”或“%”,又该怎么处理?

 

解决:可以使用转义(escape)关键字来完成此任务,为此先创建一个临时的表,之后再往该表中插入1行记录,其值包含通配符。

 

执行语句:

(1)create table dept_temp as select *from dept;

(2)insert into dept_temp values (88,‘IT_RESEARCH’, ‘BEIJING’);

(3)select * from dept_temp where dname like ‘IT\_%’ escape ‘\’;

 

解释:定义’\’为转义(escape)符,即在’\’之后的’_’字符已经不是通配符,而是它本来的含义,即下划线。

 

2:在当前student表中搜索出所有含有下划线的学生信息

解:首先查询当前student表信息:


我们先用’_’进行查询,发现找不到


那是因为like后面的’_’是通配符,表示有且只有一个字符,也就是说,上图中的命令其实是查找名字只有1个字的学生信息,当然查不到。

现在用转义字符查询


对于命令:

SQL>select * from student where sname like ‘%\_%’ escape ‘\’;

其中’%\_%’一头一尾两个%意思是通配符:含有零个或多个字符,中间\是转义运算符,也就是\_表示的是下划线,而不是LIKE通配符,那么’%\_%’的意思就是名字含有下划线的学生,该下划线前后都可以有字符,也可以都没有字符。

另外,$也是转义运算符!作用和\一样。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值