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

一、LIKE比较运算符

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

 

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

SQL>selectempno, ename, sal, job from emp wherejob 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 dnamelike ‘IT\_%’ escape ‘\’;

 

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

 

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

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


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


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

现在用转义字符查询


对于命令:

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

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

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

你可能感兴趣的:(Oracle-19-like运算符&转义操作符)