前几天看了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'