模糊查询
模糊查询–通配符、LIKE、BETWEEN、IN 的使用
在使用模糊查询时,查询者对查询条件也是模糊的,大概的,不特别明确的。例如,查询张姓学生的信息,查询分数在60-80分的考试成绩或者查询北京,上海,广州地区的学生,这种查询不是指定某个人的姓名,一个具体的分数或者某个固定的地区,这样的查询都属于模糊查询。
一,通配符
简单讲,通配符是一类字符,它可以代替一个或多个真正的字符,查找信息时作为替代字符出现。
T-SQL中的通配符必须与LIKE关键字一起使用,以完成特殊的约束或要求。
通配符 | 解释 | 示例 |
---|
_ (下划线) | 一个字符 | A LIKE ‘C_’,则符合条件的A如CS,Cd等 |
% | 任意长度的字符串 | B LIKE ‘CO%’,则符合条件的B如CONST,COKE等 |
[ ] | 括号中指定范围内的一个字符 | C LIKE ‘9W0[1-2]’,则符合条件的C如9W01或9W02 |
[^] | 不在括号中所指定范围内的任意一个字符 | D LIKE ‘9W0[ ^ 1-2]’,则符合条件的D如9W03或9W07等 |
二,使用LIKE进行模糊查询
LIKE运算符用于匹配字符串或字符串的一部分。
由于该运算符只用于字符串,因此仅与字符数据类型(如char或varchar等)联合使用。
在进行数据更新,删除数据或者查询的时候,依然可以使用LIKE关键字进行匹配查找,例如,查找姓张的学生信息:
SELECT * FROM Students WHERE SName LIKE '张%'
或者查询住址包括“北京”字样的学生信息:
SELECT * FROM Students WHERE SAddress LIKE '%北京%';
三,使用 BETWEEN 在某个范围内进行查询
使用关键字 BETWEEN 可以查找那些介于两个已知值之间的一组未知值。要实现这种查询,必须知道查找的初始值和终值,并且初始值要小于等于终值,初始值用AND关键字分开。例如,查询分数在60(含)到80(含)之间的信息如下:
SELECT * FROM SCore WHERE SCore BETWEEN 60 AND 80;
此外,BETWEEN查询在查询日期范围的时候使用的比较多。例如,查询不在2013年1月1号到2013年8月1号之间订购的图书列表:
SELECT FROM Sales WHERE ord_date NOT BETWEEN '2013-1-1' AND '2013-8-1';
使用NOT来对限制条件进行“取反”操作。
四,使用IN在列举值内进行查询
查询的值是指定的某些值之一,可以使用带列举值的IN关键字来进行查询。将列举值放在圆括号里,用逗号分开。例如,查询北京、广州或者上海的学生姓名。
SELECT SName AS 学生姓名 FROM Students WHERE SAddress
IN('北京','广州','上海') ORDER BY SAddress;
同样可以把IN关键字和NOT关键字合起来使用,这样可以得到所有不匹配列举值的行。