选择查询通过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)可以是一个完整的字符串,也可以含有通配符。通配符有以下两种:
例如:查询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