6.5? 使用LIKE進行模糊查詢
當只知道部分字符串時,可使用LIKE運算符來查詢數據庫,找出與其相關的整個字符串。因此,當把關鍵字LIKE用在WHERE子句中時,可以比較兩個字符串的部分匹配。當對字符串內容有些印象,但并不知道準確形式的時候,就可以使用LIKE運算符和相關的通配符進行部分匹配的查詢。
6.5.1? LIKE運算符
前面提到的查詢實際上都是精確查詢,即對查詢的字段的值有準確的描述。但在實際應用中往往經常要用到模糊查詢,根據某一關鍵詞搜索相關信息。在SQL語言中是通過通配符來實現的。SQL語言提供的通配符有“%”、“-”和“[]”,還包括前面介紹的“*”。
要在查詢語句中使用通配符,必須使用LIKE運算符。要使用一個或多個通配符在LIKE查詢中搜索字符串,只要將字符串與通配符組合起來即可。在數據庫管理系統中,LIKE運算符與通配符組合使用提供了模糊查詢功能。
說明?只有CHAR、VARCHAR和TEXT類型的數據才能使用LIKE運算符和通配符。
也可以不使用通配符,只使用LIKE運算符。如下面的實例。
實例13? 使用LIKE運算符實現查詢
使用LIKE運算符,從TEACHER表中查詢所有計算機系教師的姓名(TNAME)、系(DNAME)、年齡(AGE)、性別(TSEX)信息。實例代碼:
SELECT??TNAME, DNAME,AGE, TSEX |
運行結果如圖6.14所示。
![]() |
圖6.14? 計算機系中的教師 |
在該實例中,LIKE運算符可用相等(=)運算符來替代。另外,LIKE運算符也可以與NOT運算符組合使用,如下面的實例。
實例14? 使用NOT LIKE運算符實現查詢
使用NOT LIKE運算符,從TEACHER表中查詢所有不在計算機系教師的姓名(TNAME)、系(DNAME)、年齡(AGE)、性別(TSEX)信息。實例代碼:
SELECT??TNAME, DNAME,AGE, TSEX |
運行結果如圖6.15所示。
![]() |
圖6.15? 非計算機系中的教師 |
此時,NOT LIKE運算符可用不等于(<>)運算符來替代。