1
数据库技术及应用
1.8.1.2 5.1.2 条件查询
5.1.2 条件查询

在数据库中查询数据时,有时用户只希望得到一部分数据而不是全部,如果还使用SELECT...FROM结构,会因为大量不需要的数据而很难实现,这时就需要在SELECT语句中加入条件语句,即WHERE子句。WHERE子句通过条件表达式在描述关系中设置选择条件。数据库系统处理语句时,按行为单位,逐个检查每个行是否满足条件,并将不满足条件的行筛选掉。WHERE子句的基本格式如下:

查询结果返回table_name表中searchcondition条件为true的所有行,而对于searchconditions条件为false或者未知的行则不返回。WHERE子句使用灵活, searchcondition有多种使用方式,以下列出了5种在WHERE子句中可以使用的条件。

1.比较运算符

比较运算符有如下几种:=,<>,>,<,>=,<=。

【例5-9】查询Student_info表中所有女生的信息。

(1)启动MicrosofT-SQL Server Management Studio。

(2)单击工具栏上的按钮,或者执行“文件”→“新建”→“使用当前连接查询”命令,建立一个新的查询。

(3)在查询编辑窗口中输入如下T-SQL代码:

(4)单击工具栏上的按钮,执行以上T-SQL代码命令,查看结果,如图510所示。

图5-10 查询所有女生的信息数据

2.逻辑运算符

逻辑运算符包含NOT、AND和OR3种。

【例5-10】查询Student_info表中年龄超过17岁的女生信息。

(1)启动MicrosofT-SQL Server Management Studio,单击工具栏上的按钮,建立一个新的查询。

(2)在查询编辑窗口中输入如下T-SQL代码:

(3)执行以上T-SQL代码命令,查看结果,如图5-11所示。

图5-11 年龄超过17岁女生的数据

3.范围运算符

格式:列名[NOT]BETWEEN开始值AND结束值

说明:列名必须在开始值和结束值之间。

等效:列名>=开始值AND列名<=结束值

列名<开始值OR列名>结束值(选NOT)

【例5-11】查询SC表中成绩在80~90分之间的学号与课程信息。

(1)启动MicrosofT-SQL Server Management Studio,执行“文件”→“新建”→“使用当前连接查询”命令,建立一个新的查询。

(2)在查询编辑窗口中输入如下T-SQL代码:

(3)单击工具栏上的按钮,执行以上T-SQL代码命令,查看结果,如图512所示。

图5-12 成绩在80~90分之间的学号与课程信息

4.模式匹配运算符

格式:[NOT] LIKE通配符

说明:通配符(_):代表一个任意字符。

通配符(%):代表任意多个任意字符。

【例5-12】查询Student_info表中所有姓“王”的学生信息。

(1)启动MicrosofT-SQL Server Management Studio,单击工具栏上的按钮,建立一个新的查询。

(2)在查询编辑窗口中输入如下T-SQL代码:

(3)单击工具栏上的按钮,执行以上T-SQL代码命令,查看结果,如图513所示。

图5-13 姓“王”的所有学生数据

可使用通配字符如下:

●百分号(%):可匹配任意类型和长度的字符。如果是中文,应使用两个百分号(即%%)。

●下划线(_):匹配单个任意字符,常用来限制表达式的字符长度。

●方括号([]):指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

●特别的通配字符([]):其取值与[]相同,但要求所匹配对象为指定字符以外的任一个字符。

例如,限制以Publishing结尾,代码应为LIKE%Publishing;限制以A开头,代码应为LIKE[A]%;限制以A开头外,代码应为LIKE[A]%。

5.列表运算符

格式:表达式[NOT]IN(列表︱子查询)

说明:表达式的值(不在)在列表所列出的值中,子查询的应用将在本情景的5.3.2节进行介绍。

【例5-13】查询Student_info表中学号为20120107和20120111的学生的信息。

(1)启动MicrosofT-SQL Server Management Studio,执行“文件”→“新建”→“使用当前连接查询”命令,建立一个新的查询。

(2)在查询编辑窗口中输入如下T-SQL代码:

(3)单击工具栏上的按钮,执行以上T-SQL代码命令,查看结果,如图514所示。

6.空值判断符

格式:IS[NOT]NULL

图5-14 列表运算符的使用

【例5-14】查询SC表中没有成绩的学生信息。

(1)启动MicrosofT-SQL Server Management Studio,单击工具栏上的按钮,建立一个新的查询。

(2)在查询编辑窗口中输入如下T-SQL代码:

(3)单击工具栏上的按钮,执行以上T-SQL代码命令,查看结果,如图515所示。

图5-15 空值判断符的使用