《SQL必知必会》--通配符
第六课 用通配符进行过滤
通配符进行过滤是是在WHERE指令中使用的对前面几章所学的过滤规则的补充,主要是由于前面所学的过滤规则必须使用已知的特定的准确的值。
当我们只知道一个词,但是想要找到包含这个词的数据值时,通配符就有了作用。
本课介绍三种用以过滤的通配符:百分号% 及下划线 _ 和方括号[]。
LIKE操作符
通配符(wildcard):用来匹配值的一部分的特殊字符。
搜索模式(search pattern):由字面值、通配符或两者组合构成的搜索条件。
为在搜索子句中使用通配符,必须使用LIKE操作符。
通配符只能用于文本字段(字符串)。
百分号(%)通配符
百分号(%)通配符表示任何字符出现任意次数。
使用方法如下:
1 |
|
- 与前面的指令不同在于LIKE实际上是动词,因此不需要等于号(=)。
- 有的DEMS在搜索时区分大小写,因此通配符中可能会出现’fish%’<>’Fish%’的情况。
- 通配符不匹配空值(NULL)
- %不仅可以放在后面,还可以放在需要匹配的单词的前面,中间,都可以。
- 一个(%)代表多个字符。
下划线(_)通配符
下划线(_)通配符与百分号(%)通配符的作用功能一样,但它只匹配单个字符,而不是多个字符。
即每一个(_)代表一个字符,遇到特殊情况可以多写两个,但是,不好区分写了几个,最好少用。
1 |
|
- 一个(_)只能代表一个字符,比如上面指令的输出结果只能是类似于’12 inch bear toy’的prod_name被过滤出来,但是’8 inch bear toy’就被排除在外了
方括号([])通配符
只有ACCESS和SQL Sever 支持该通配符。
干巴巴的解释比较费劲,下面直接看一个例子。
1 |
|
输出结果:
1 |
|
实际上也就是一个OR的功能。
‘[JM]%’ = J% OR M%
使用通配符的技巧
SQL的通配符有用但是代价就是耗时更长。
- 不要过度使用通配符。如果其他操作符可以到达相同作用,应使用其他操作符。
- 在确实需要使用通配符时,尽量不要放在搜索模式的开始处,在开始处搜索起来最慢。
- 仔细注意通配符的位置以及实际数据中的空格。如果放错地方,可能不会返回想要的数据。
小结
通配符虽好,可不要贪杯哦!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!