【SQL必知必會】筆記 SQL萬用字元
阿新 • • 發佈:2018-11-11
萬用字元:
- WHERE子句中用於篩選
- 用來匹配值的一部分的特殊字元
- 萬用字元只能用於文字欄位(字串),不能用於非文字資料型別的資料
- 使用萬用字元時,必須使用LIKE操作符
1. 百分號(%)萬用字元
%表示任何字元出現任意次數
- 比方說,想要表中找名字以jet開頭的產品的產品id和產品名稱,用’jet%'表示
SELECT prod_id, prod_name FROM products WHERE prod-name LIKE 'jet%';
- 可以搜尋任意位置出現特定字元的,比如說找名字中包含文字anvi的產品的產品id和產品名稱
’%anvil%'表示匹配任何位置包含文字anvil的值,而不論它之前或之後出現什麼字元
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '%anvi1%';
顯示結果如下
- 還可以搜尋特定開頭和特定結尾
例如:找出以s起頭以e結尾的所有產品 ,用 's%e’表示
SELECT prod_nameFROM productsWHERE prod name LIKE 's%e';
注意:%萬用字元不能匹配NULL值。
2. 下劃線(_)萬用字元
下劃線的用途與%一樣,但下劃線只匹配單個字元而不是多個字元 。用下面兩個例子來檢視下劃線和%的差別:
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ton anvil';
第一行中下劃線匹配1,第二行中匹配2。 .5 ton anvil產品沒有匹配,因為搜尋模式要求匹配1個萬用字元。對照一下,下面的SELECT語句使用%萬用字元,返回三行產品 :
SELECT prod_id, prod_name FROM products WHERE prod-name LIKE '% ton anvil';
總結:%能匹配0個,1個字元或者多個萬用字元, _總是匹配一個字元,不能多也不能少
使用萬用字元的技巧和要點
通
- 配符搜尋的處理一般要比前面討論的其他搜尋所花時間更長。 所以不要過度使用萬用字元。如果其他操作符能達到相同的目的,應該使用其他操作符。
在確實需要使用萬用字元時,除非絕對有必要,否則不要把它們用
在搜尋模式的開始處。把萬用字元置於搜尋模式的開始處,搜尋起
來是最慢的。
仔細注意萬用字元的位置。如果放錯地方,可能不會返回想要的數 據 。