6.5.3? “_”通配符
“_”通配符的功能與“%”通配符基本相同,只是它只表示任意一個字符的匹配。當然,要表示兩個字符的匹配,就需要使用兩個“_”通配符,即寫成“__”。
只有在用戶確定所要查詢的字符串的個數,只是不確定其中的一個或幾個字符的確切值時,才能使用“_”通配符。
實例19? 使用“_”通配符查詢課程名有5個字且以“計算機”開始的課程
在COURSE表中查詢所有以“計算機”開頭且只有5個文字的所有課程的課程名(CNAME)、人數(SCOUNT)以及考試時間(CTEST)信息。實例代碼:
SELECT??CNAME, SCOUNT, CTEST |
運行結果如圖6.21所示。
![]() |
圖6.21? 課程名有5個字且以“計算機”開始的課程 |
與“%”通配符相似,“_”通配符可以用在字符串的任意位置。當然,如果用戶只知道要查詢的字符串個數,而不能確定其中任何一個字符時,也可以使用“_”通配符。
實例20? 使用“_”通配符查詢課程名為6個字的所有課程
在COURSE表中查詢所有課程名為6個字的所有課程的課程名(CNAME)、人數(SCOUNT)以及考試時間(CTEST)信息。實例代碼:
SELECT??CNAME, SCOUNT, CTEST |
運行結果如圖6.22所示。
![]() |
圖6.22? 課程名為6個字的所有課程 |
此時發現,不僅包含課程名6個字的所有課程,而且課程名少于6個字的記錄也被列入查詢結果表中,這一點也是實際應用中經常被會忽略的問題。如查詢字符串“計算機_”時,如果有條記錄為“計算機”,則它也被認為是符合查詢條件的。因此,上例正確的SQL代碼如下。
SELECT??CNAME, SCOUNT, CTEST |
運行結果如圖6.23所示。
![]() |
圖6.23? 課程名為六個字的所有課程 |