————讲解什么是通配符,如何使用通配符,以及怎么使用LIKE操作符进行通配操作,以便对数据进行复杂过滤
1. 概念介绍
- 通配符(wildcard)
用来匹配值的一部分的特殊字符
- 搜索模式(search pattern)
由字面值、通配符或两者组合构成的搜索条件
- 谓词
2. 百分号(%)通配符
SELECT prod_id, prod_name FORM Products WHERE prod_name LIKE 'Fish%'; --检索任意以Fish开头的词
说明:
- 根据DBMS的配置,搜索可以区分大小写的
- %可以在任何位置,开头、结尾、中间
WHERE prod_name LIKE ‘%’,’%’不会匹配产品名称为NULL的行
3. 下划线(_)通配符
“_”的用途与”%”相似,但它只匹配单个字符,而不是多个字符
SELECT prod_id, prod_name FORM Products WHERE prod_name LIKE '__ inch teddy bear'; --检索包含“inch teddy bear”的前面有两位的行-
3. 方括号([])通配符
SELECT cust_contact FORM Customers WHERE cust_contact LIKE '[JM]%' ORDER BY cust_contact; --检索开头包含J或M的cust_contact,以升序排序 SQLServer支持[]
- My SQL、Oracle、DB2、SQLite不支持[]
SELECT cust_contact FORM Customers WHERE cust_contact LIKE '[^JM]%' ORDER BY cust_contact; --检索开头不包含J或M的cust_contact,以升序排序SELECT cust_contact FORM Customers WHERE NOT cust_contact LIKE '[JM]%' ORDER BY cust_contact; --检索开头包含J或M的cust_contact,以升序排序
