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萬用字元,那麼’%\_%’的意思就是名字含有下劃線的學生,該下劃線前後都可以有字元,也可以都沒有字元。
另外,$也是轉義運算子!作用和\一樣。