选择查询通过WHERE子句实现,WHERE 子句给出了查询条件该子句必须紧跟在FROM子句之后,其语法格式如下:
WHERE <search_condition>
其中search_condition为查询条件,<search_condition>语法格式为:
{ [ NOT ] <precdicate> | (<search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | (<search_condition>) } ]
} [ ,…n ]
其中predicate为判定运算,<predicate>语法格式为:
{ expression { = | < | <= | > | >= | <> | != | !< | !> } expression /*比较运算*/
| string_expression [ NOT ] LIKE string_expression [ ESCAPE 'escape_character' /*字符串模式匹配*/
| expression [ NOT ] BETWEEN expression AND expression /*指定范围*/
| expression IS [ NOT ] NULL /*是否空值判断*/
| CONTAINS ( { column | * },'<contains_search_condition>') /*包含式查询*/
| FREETEXT ({ column | * },'freetext_string') /*自由式查询*/
| expression [ NOT ] IN ( subquery | expression [,…n] ) /*IN子句*/
| expression { = | < | <= | > | >= | <> | != | !< | !> } { ALL | SOME | ANY } ( subquery ) /*比较子查询*/
| EXIST ( subquery ) /*EXIST子查询*/
}
WHERE子句常用的查询条件列在下面:
说明:在SQL中,返回逻辑的运算符或者关键字都称为谓词。
1, 表达式比较
比较运算符用于比较两个表达式的值,比较运算的语法格式如下:
expression { = | < | <= | > | >= | <> | != | !< | !> } expression
其中,expression 是除 text,ntext和image之外类型的表达式。
例如,查询student表中专业为计算机或者性别为男的学生:
USE stsc
SELECT *
FROM student
WHERE specialist='计算机' or stsex='男'
2,范围比较
BETWEEN、NOT BETWEEN、IN是用于范围比较的三个关键字,用于查找字段值在(或不在)指定范围的行.
例如:查询score表中的成绩为80,90,100的记录
USE stsc
SELECT *
FROM score
WHERE grade in (80,90,100)
3,模式匹配
字符串模式匹配使用LIKE谓词,LIKE谓词表达式的语法表达式格式如下:
string_expression [ NOT ] LIKE string_expression [ ESCAPE 'escape_character']
其含义是查找指定列值与匹配串相匹配的行,匹配串(即string_expression)可以是一个完整的字符串,也可以含有通配符。通配符有以下两种:
%:代表0或多个字符。
_:代表一个字符。
例如:查询student表中姓孙的学生情况
USE stsc
SELECT *
FROM student
WHERE stname LIKE '孙%'
4,空值的使用
空值是未知的值,判定一个表达式的值是否为空时,使用 IS NULL关键字语法格式如下:
expression IS [ NOT ] NULL
例如:查询已选课但未参加考试的学生情况
USE stsc
SELECT *
FROM score
WHERE grade IS null