WHERE子句设置查询条件,过滤掉不需要的数据行。
例如下面语句查询年龄大于10的数据:
SELECT * FROM student WHERE age>10
WHERE子句可包括各种条件运算符:
运算符 | 表示形式 |
---|---|
比较运算符(大小比较) | >、>=、=、<、<=、<>、!>、!< |
范围运算符(表达式值是否在指定的范围) | BETWEEN…AND… / NOT BETWEEN…AND… |
列表运算符(判断表达式是否为列表中的指定项) | IN (项1,项2……) / NOT IN (项1,项2……) |
模式匹配符(判断值是否与指定的字符通配格式相符) | LIKE、NOT LIKE |
空值判断符(判断表达式是否为空) | IS NULL、NOT IS NULL |
逻辑运算符(用于多条件的逻辑连接) | NOT、AND、OR |
举例如下:
1、范围运算符例:
age BETWEEN 18 AND 25相当于age>=18 AND age<=25
2、列表运算符例:
country IN ('American','China')
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime
等类型查询。
可使用以下通配字符:
- %:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号,即%%。
- _:匹配单个任意字符,它常用来限制表达式的字符长度。
- []:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
- [^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以Publishing结尾,使用LIKE ‘%Publishing’
限制以A开头:LIKE ‘[A]%’
限制以A开头外:LIKE ‘[^A]%’
4、空值判断符例:
WHERE age IS NULL
5、逻辑运算符:
优先级为NOT、AND、OR