LIKE操作符
提示:前面已经学习了过滤,但那些都是固定值或范围,基本都算是精确查询,在有些时候不那么好用,比如模糊查询,我们只想筛选出与之相近的结果,这就需要用到LIKE和通配符进行结合使用 |
1.1 百分号%通配符
提示:百分号%是最常用的通配符,在搜索时,%可以表示任何字符 |
SQL语句:
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE 'Fish%'
SQL语句分析:
这条语句表示从products中检索出prod_name由Fish开头的所有数据,%不仅能放在字符末尾,还可以放到字符前面,中间等任务地方,比如:
%Fish%,Fi%sh%,%Fish等等
输出结果:
提示:请注意NULL,%可以匹配任何东西,但是却又个列外,那就是NULL值 |
1.2 下划线_通配符
提示:下划线通配符的用途和%一样,但是下划线只能匹配单个字符,而不是多个字符 |
SQL语句:
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '__ inch teddy bear'
SQL语句分析:
这条语句使用两个下划线_,所以检索两个字符,如果使用%则检索出所有数据
输出结果:
1.3 方括号[]通配符
提示:这个通配符我也是第一次知道,方括号[]通配符是用来指定一个字符集,它必须匹配指定位置的一个字符 |
SQL语句:
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
SQL语句分析:
这条语句使用了两个通配符,[]和%,方括号内部是个字符集,那么上述SQL语句就是检索cust_contact值为J或M开头的所有字符
输出结果:
1.4 上三角^通配符
提示:这个通配符和NOT操作符功能一样,都是用来否定,那么使用^可以一定程度上简化语句 |
SQL语句:
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[^JM]%'
SQL语句分析:
这条语句意思检索cust_contact不是J或M开头的数据
输出结果:
|
通配符使用技巧:
- 不要过度使用通配符。如果其他操作符能达到相同的目的,应使用操作符
- 在确实需要通配符的时候,应尽量不要把他们用在搜索的开始处,这样搜索起来会较慢
- 应特别注意通配符的位置,如果放错位置,则不会返回正确的数据