内容正文:
举一反三考点练
《网站数据库应用技术-SQL server》“图书信息管理”数据库表的查询-讲义
1. 掌握聚合函数与分组查询
2. 掌握排序与子查询
3. 掌握查询结果的保存与管理
知识点一 聚合函数与分组查询
1.聚合函数的使用
聚合函数用于对一组值进行计算并返回一个单值,常用于统计和汇总数据。常用的聚合函数包括:
(1)COUNT:统计满足条件的记录数。例如,统计“图书状态”为“借出”的图书数量:
(2)SUM:计算数值列的总和。例如,计算“图书信息”表中所有图书的总价:
(3)AVG:计算数值列的平均值。例如,计算所有图书的平均定价:
(4)MIN 和 MAX:分别返回一组值中的最小值和最大值。例如,查询入库最早和最晚的日期:
2.分组查询
使用GROUP BY子句可以对查询结果进行分组,通常与聚合函数结合使用。例如:
(1)查询各类别图书的总数量:
(2)查询每个出版社出版的图书数量:
3.条件筛选
在分组查询中,可以结合WHERE子句进行条件筛选。例如:
(1)查询“类别”为“医药”的图书数量:
(2)聚合函数COUNT可以统计所有行(包括空值),而其他聚合函数会忽略空值。
(3)使用GROUP BY时,SELECT语句中的列必须是聚合函数或GROUP BY子句中的列。
(填空题)在 SQL 查询中,聚合函数 MIN 和 MAX 分别返回一组值中的_____和_____。
【答案】最小值,最大值
【解析】MIN 和 MAX 函数分别返回一组值中的最小值和最大值。
【要点】考查 MIN 和 MAX 函数的作用。
【要点】考查聚合函数与 GROUP BY 子句的结合使用。
1.(单项选择题)在 SQL 查询中,以下关于聚合函数与 GROUP BY 子句的结合使用,正确的是( )
A. SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 B. SELECT COUNT(*) FROM 表名 GROUP BY 列名
C. SELECT 列名 FROM 表名 GROUP BY 列名 D. SELECT COUNT(*) FROM 表名
【答案】A
【解析】在使用 GROUP BY 子句时,SELECT 语句中的列必须是聚合函数或 GROUP BY 子句中的列。
【要点】考查聚合函数与 GROUP BY 子句的结合使用。
2.(单项选择题)在 SQL 查询中,以下关于 WHERE 子句与聚合函数的结合使用,正确的是( )
A. WHERE 子句用于在分组后筛选结果 B. WHERE 子句用于在分组前筛选结果
C. WHERE 子句不能与聚合函数一起使用 D. WHERE 子句只能用于筛选单列
【答案】B
【解析】WHERE 子句用于在分组前筛选结果,而 HAVING 子句用于在分组后筛选结果。
【要点】考查 WHERE 子句与聚合函数的结合使用。
3.(单项选择题)在 SQL 查询中,以下关于聚合函数 COUNT 的使用,正确的是( )
A. COUNT(*) 统计所有行,包括空值 B. COUNT(列名) 只统计非空值的数量
C. COUNT(*) 和 COUNT(列名) 的结果总是相同 D. COUNT(*) 不能用于统计空表
【答案】A
【解析】COUNT(*) 统计所有行,包括空值;COUNT(列名) 只统计非空值的数量。
【要点】考查 COUNT 函数的使用。
1.(判断题)聚合函数 COUNT 可以统计所有行,包括空值( )
【答案】√
【解析】COUNT 函数可以统计所有行,包括空值。
【要点】考查 COUNT 函数的特性。
2.(判断题)聚合函数 AVG 可以计算非数值列的平均值( )
【答案】×
【解析】AVG 函数只能用于数值列,不能用于非数值列。
【要点】考查 AVG 函数的使用。
3.(填空题)在 SQL 查询中,聚合函数 AVG 用于计算_____的平均值。
【答案】数值列
【解析】AVG 函数用于计算数值列的平均值。
【要点】考查 AVG 函数的作用。
· 聚合函数:
COUNT:统计满足条件的记录数。SUM:计算数值列的总和。
AVG:计算数值列的平均值。MIN 和 MAX:返回一组值中的最小值和最大值。
· 分组查询:使用 GROUP BY 子句对数据进行分组。结合聚合函数进行分组统计。
· 条件筛选:使用 WHERE 子句进行条件筛选。
知识点二 排序与子查询
1.排序查询
使用ORDER BY子句可以对查询结果进行排序,支持升序(ASC)和降序(DESC)。例如:
(1)按出版日期降序排列“高等教育出版社”出版的图书:
(2)按类别降序,存放位置升序排列所有图书:
2.子查询
子查询是嵌套在另一个查询中的查询语句,可以返回单值或多行值。子查询通常用于WHERE子句中:
(1)返回单值的子查询:查询定价高于所有图书平均定价的图书:
(2)返回多行值的子查询:查询全部没有被借出的图书:
(3)子查询需要用圆括号括起来。
(4)子查询中不能使用ORDER BY子句,排序应在最外层查询中完成。
1.(判断题)`ORDER BY` 子句用于对查询结果进行排序,支持升序(ASC)和降序(DESC)( )
【答案】√
【解析】`ORDER BY` 子句用于对查询结果进行排序,支持升序(ASC)和降序(DESC)。
【要点】考查排序关键字的使用。
1.(单项选择题)以下哪个 SQL 语句用于查询全部没有被借出的图书( )
A. SELECT * FROM 图书表 WHERE 借出状态 = '未借出'
B. SELECT * FROM 图书表 WHERE 借出状态 IS NULL
C. SELECT * FROM 图书表 WHERE 借出状态 NOT IN (SELECT 借出状态 FROM 图书表 WHERE 借出状态 = '借出')
D. SELECT * FROM 图书表 WHERE 借出状态 NOT IN (SELECT 借出状态 FROM 图书表 WHERE 借出状态 = '未借出')
【答案】C
【解析】子查询 `(SELECT 借出状态 FROM 图书表 WHERE 借出状态 = '借出')` 用于查询所有被借出的图书状态,外层查询用于筛选未被借出的图书。
【要点】考查子查询的使用。
2.(单项选择题)以下哪个 SQL 语句用于按类别降序,存放位置升序排列所有图书( )
A. SELECT * FROM 图书表 ORDER BY 类别 DESC, 存放位置 ASC
B. SELECT * FROM 图书表 ORDER BY 类别 ASC, 存放位置 DESC
C. SELECT * FROM 图书表 ORDER BY 类别 DESC, 存放位置 DESC
D. SELECT * FROM 图书表 ORDER BY 类别 ASC, 存放位置 ASC
【答案】A
【解析】`ORDER BY 类别 DESC, 存放位置 ASC` 用于按类别降序,存放位置升序排列。
【要点】考查多列排序的使用。
3.(填空题)子查询中不能使用____________子句,排序应在最外层查询中完成。
【答案】ORDER BY
【解析】子查询中不能使用 `ORDER BY` 子句,排序应在最外层查询中完成。
【要点】考查子查询的限制。
1.(填空题)`ORDER BY` 子句用于对查询结果进行排序,支持升序(____________)和降序(____________)。
【答案】ASC,DESC
【解析】`ORDER BY` 子句用于对查询结果进行排序,支持升序(ASC)和降序(DESC)。
【要点】考查排序关键字的使用。
2.(判断题)子查询不能嵌套在 `SELECT` 语句中( )
【答案】×
【解析】子查询可以嵌套在 `SELECT`、`INSERT`、`UPDATE` 或 `DELETE` 语句中。
【要点】考查子查询的使用。
3.(判断题)子查询需要用圆括号括起来( )
【答案】√
【解析】子查询需要用圆括号括起来。
【要点】考查子查询的语法。
· 排序查询:使用 ORDER BY 子句对查询结果进行排序。支持升序(ASC)和降序(DESC)。
· 子查询:子查询是嵌套在另一个查询中的查询语句。返回单值或多行值。子查询需要用圆括号括起来,排序应在最外层查询中完成。
知识点三 查询结果的保存与管理
1.查询结果保存为新表
使用SELECT INTO语句可以将查询结果保存为新表。例如:
(1)查询“类别”为“医药”的图书信息并保存为“医药类图书”表:
(2)查询“图书状态”为“借出”的图书信息并保存为“借出图书信息”表:
2.使用对象资源管理器进行查询设计
SQL Server提供了图形化的查询设计工具,可以通过对象资源管理器进行查询设计:
·打开查询设计器:在对象资源管理器中右击表,选择“编辑前200行”命令。
·添加表:在“关系图窗格”中添加需要的表。
·设置查询条件:在“条件窗格”中输入筛选条件。
·查看生成的SQL语句:在“SQL窗格”中查看自动生成的SQL语句。
·执行查询:单击“执行”按钮查看结果。
·如果要删除已添加的表,可以在“关系图窗格”中右击表并选择“删除”。
·查询设计工具可以自动生成SQL语句,但复杂的查询仍需手动编写SQL代码。
(判断题)查询结果保存为新表时,新表的名称不能与现有表的名称相同( )
【答案】√
【解析】查询结果保存为新表时,新表的名称确实不能与现有表的名称相同,否则会导致命名冲突。因此该说法是正确的。
【要点】考查对查询结果保存为新表的限制条件的理解。
1.(单项选择题)以下关于查询结果保存为新表的描述,正确的是( )
A. 新表必须与原表在同一个数据库中 B. 新表的名称不能与现有表的名称相同
C. 新表的结构必须与原表相同 D. 新表不能包含查询结果中的空值
【答案】B
【解析】新表的名称不能与现有表的名称相同,否则会导致命名冲突。因此 B 选项正确。选项 A、C 和 D 都是错误的。
【要点】考查对查询结果保存为新表的限制条件的理解。
2.(单项选择题)在 SQL Server 中,使用查询设计器时,以下哪个窗格可以查看自动生成的 SQL 语句( )
A. 关系图窗格 B. 条件窗格 C. SQL窗格 D. 结果窗格
【答案】C
【解析】在 SQL Server 的查询设计器中,自动生成的 SQL 语句可以在“SQL窗格”中查看。因此 C 选项正确。
【要点】考查对查询设计器各窗格功能的掌握。
3.(单项选择题)在 SQL Server 中,使用查询设计器时,以下哪个窗格用于输入筛选条件( )
A. 关系图窗格 B. 条件窗格 C. SQL窗格 D. 结果窗格
【答案】B
【解析】在 SQL Server 的查询设计器中,输入筛选条件的窗格是“条件窗格”。因此 B 选项正确。
【要点】考查对查询设计器各窗格功能的掌握。
1.(判断题)使用 `SELECT INTO` 语句可以将查询结果保存为新表,新表的结构和数据由查询结果决定( )
【答案】√
【解析】`SELECT INTO` 语句可以将查询结果保存为新表,新表的结构和数据确实由查询结果决定。因此该说法是正确的。
【要点】考查对 `SELECT INTO` 语句功能的理解。
2.(判断题)在 SQL Server 中,使用查询设计器时,必须先添加表才能设置查询条件( )
【答案】√
【解析】在 SQL Server 的查询设计器中,必须先添加表才能设置查询条件,因为查询条件是基于表中的字段设置的。因此该说法是正确的。
【要点】考查对查询设计器操作流程的掌握。
3.(填空题)查询结果保存为新表时,新表的名称不能与现有表的名称____________。
【答案】相同
【解析】查询结果保存为新表时,新表的名称不能与现有表的名称相同,否则会导致命名冲突。
【要点】考查对查询结果保存为新表的限制条件的理解。
· 查询结果保存为新表:使用 SELECT INTO 语句将查询结果保存为新表。
· 使用对象资源管理器进行查询设计:
打开查询设计器:右击表,选择“编辑前200行”。
添加表:在“关系图窗格”中添加需要的表。
设置查询条件:在“条件窗格”中输入筛选条件。
查看生成的SQL语句:在“SQL窗格”中查看自动生成的SQL语句。
执行查询:单击“执行”按钮查看结果。
删除表:在“关系图窗格”中右击表并选择“删除”。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$