6.1LIKE操作符
通配符(wildcard):用来匹配值的一部分的特殊字符。
搜索模式(search pattern):由字面值,通配符或两者组合构成的搜索条件。
为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示DBMS,后跟的搜索模式利用通配符而不是直接相等匹配进行比较。
谓词:操作符在他作为谓词的时候不是操作符。从技术上来说,LIKE是谓词而不是操作符。
6.1.1百分号(%)通配符
最常使用的通配符是百分号(%)。在搜索串种,%表示任何字符出现任意次数。
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';
执行这条子句时,将检索任意以Fish起头的词。
区分大小写:根据DBMS的不同及其配置,搜索可以是区分大小写的。
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '%bean bag%';
匹配任何位置包含文本bean bag的值。
除了一个或多个字符外,%还能匹配0个字符。
6.1.2下划线(_)通配符
下划线(_)总是匹配单个字符。
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '___inch tessy bear';
注意后面所跟空格。
6.1.3方括号([ ])通配符
方括号([ ])通配符用来制定一个字符集,他必须匹配制定位置的一个字符。
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
找出所有名字以J或M起头的联系人。
此通配符可用前缀字符^来否定。
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[^JM]%'
ORDER BY cust_contact;
6.2使用通配符的技巧
1.不要过分使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
2.在确实需要使用通配符时,除非绝对有必要,否则不要把他们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
3.仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。