數據庫中通配符的應用

前幾天看了CSDN專家,水哥的SQL入門之通配符。感覺收穫頗豐!學習了一下

通配符”[^]”作用與”[]”相反 用於匹配沒有在方括號中列出的字符

 SELECT s_no as 學號,

       s_name 姓名,

       s_sex 性別 ,

       s_birthday 年齡 ,

       s_speciality 專業,

       s_avgrade 平均成績 ,

       s_dept 系別

FROM student --依然使用上節目的數據表student

WHERE s_no like '2006020[^134]'

以上查詢學好尾數不是134的學生

等價語句為

WHERE s_no NOT like '2006020[134]

同時語句

WHERE s_no not like '2006020[^134]'

與下面語句等價

WHERE s_no like '2006020[134]'

使用關鍵字Escape定義轉義字符

如果列值中包含”%”,”_”,”[]”,”[^]”等字符時候可以用ESCAPE定義轉義字符的功能來實現對此類字符的查詢。

ESCAPE的作用就是將一個字符定義為轉義字符,格式如下:

Like 's1Xts2' escape 'X'

以上t是某一個通配符,s1和s2可以是任意的字符串(含通配符),其作用是將字符X定義成轉義字符,執行時DBMS將字符's1Xts2'中的通配符t作為實際值處理,從而使得t失去通配符的作用

上面的語句

SELECT s_no 學號,

       s_name 姓名,

       s_sex 性別 ,

       s_avgrade 平均成績 ,

       s_dept 系別 FROM student2

WHERE s_dept LIKE '%[%]%'

等價於下面語句

SELECT s_no 學號,

       s_name 姓名,

       s_sex 性別 ,

       s_avgrade 平均成績 ,

       s_dept 系別 FROM student2

WHERE s_dept LIKE '%X%%'escape 'X'

同樣查詢包含”[^]”可以這樣

WHERE s_dept LIKE '%X[^]%'escape 'X'


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章