内容正文:
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第39卷为考点训练卷,按《数据库原理与应用技术-MySQL》范围和要求编写。具体内容为:1.基本查询语句SELECT的使用:单表查询的相关操作:查询部分字段;2.按条件查询;3.分组聚合查询;4.连接查询
2027版河北省《计算机类考纲百套卷》 第39卷
《数据库原理与应用技术-MySQL》
Select查询 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共25小题,每题2分,共50分)
1.要从students表中选择name和age两列,正确的SELECT语句是( )
A. SELECT * FROM students B. SELECT name, age FROM students
C. SELECT name AND age FROM students D. SELECT name; SELECT age FROM students
2.内连接(INNER JOIN)返回( )
A. 左表的所有记录和右表匹配的记录 B. 右表的所有记录和左表匹配的记录
C. 两个表中所有匹配的记录 D. 两个表中的所有记录
3.查询employees表中姓氏为'张'的员工,WHERE子句应为( )
A. WHERE last_name = '张' B. WHERE last_name LIKE '张%'
C. WHERE last_name LIKE '%张%' D. 以上都可以
4.查询scores表中每个学生的平均分,应该使用( )聚合函数。
A. COUNT() B. SUM() C. AVG() D. MAX()
5.在SELECT语句中,DISTINCT关键字的作用是( )
A. 对结果进行排序 B. 过滤重复的行
C. 分组统计 D. 连接表
6.在GROUP BY子句中,HAVING和WHERE的主要区别是( )
A. HAVING在分组前过滤,WHERE在分组后过滤
B. HAVING在分组后过滤,WHERE在分组前过滤
C. 两者没有区别
D. HAVING只能用于聚合函数,WHERE不能用于聚合函数
7.在SELECT语句中,LIMIT子句的作用是( )
A. 限制返回的行数 B. 限制分组数量
C. 限制连接的表数 D. 限制查询时间
8.左外连接(LEFT JOIN)返回( )
A. 左表的所有记录,右表只返回匹配的记录 B. 右表的所有记录,左表只返回匹配的记录
C. 两个表中所有匹配的记录 D. 两个表中的所有记录
9.查询products表中产品名称包含'手机'的产品,WHERE子句为( )
A. WHERE product_name = '手机' B. WHERE product_name LIKE '手机%'
C. WHERE product_name LIKE '%手机%' D. WHERE product_name IN ('手机')
10.在连接查询中,ON和WHERE的主要区别是( )
A. ON用于指定连接条件,WHERE用于过滤结果
B. ON用于过滤结果,WHERE用于指定连接条件
C. 两者可以互换
D. ON用于内连接,WHERE用于外连接
11.在“学生成绩管理系统”中,若要查询“学生表(Student)”中所有姓“张”且名字只有两个字的学生信息,正确的SQL语句是( )。
A. SELECT * FROM Student WHERE Sname LIKE '张%';
B. SELECT * FROM Student WHERE Sname LIKE '张_';
C. SELECT * FROM Student WHERE Sname = '张?';
D. SELECT * FROM Student WHERE Sname LIKE '张*';
12.执行 SQL 语句 SELECT COUNT(*) FROM Score WHERE Grade IS NULL; 的作用是( )。
A. 统计成绩表中所有记录的总数
B. 统计成绩表中成绩为 0 分的记录数
C. 统计成绩表中成绩字段为空值(NULL)的记录数
D. 统计成绩表中成绩不为空的记录数
13.现有学生表 Student(Sno, Sname, Sage, Sdept),若要查询“计算机系”和“数学系”的学生姓名和年龄,且结果按年龄降序排列,正确的SQL是( )。
A. SELECT Sname, Sage FROM Student WHERE Sdept IN ('计算机系', '数学系') ORDER BY Sage DESC;
B. SELECT Sname, Sage FROM Student WHERE Sdept = '计算机系' OR '数学系' ORDER BY Sage ASC;
C. SELECT Sname, Sage FROM Student WHERE Sdept LIKE '计算机系,数学系' ORDER BY Sage DESC;
D. SELECT Sname, Sage FROM Student GROUP BY Sdept HAVING Sdept IN ('计算机系', '数学系') ORDER BY Sage;
14.现有两个表:班级表 Class(CID, CName) 和 学生表 Student(SID, SName, CID)。执行如下 SQL:SELECT C.CName, COUNT(S.SID) FROM Class C LEFT JOIN Student S ON C.CID = S.CID GROUP BY C.CID;
该查询的结果是( )。
A. 统计每个班级的学生人数,不包含没有学生的班级
B. 统计每个班级的学生人数,包含没有学生的班级(人数显示为0)
C. 统计所有有班级归属的学生总数
D. 报错,因为 LEFT JOIN 不能与 GROUP BY 一起使用
15.若要查询学生表中第 11 条到第 20 条记录(每页 10 条,取第 2 页),在 MySQL 中正确的语句是( )。
A. SELECT * FROM Student LIMIT 10, 10;
B. SELECT * FROM Student LIMIT 10 OFFSET 20;
C. SELECT * FROM Student LIMIT 11, 20;
D. SELECT * FROM Student LIMIT 20, 10;
16.语句 SELECT Sno, COUNT(*) FROM SC GROUP BY Sno HAVING COUNT(*) > 3; 中,HAVING COUNT(*) > 3 的含义是( )。
A. 筛选出学号大于 3 的学生 B. 筛选出选课门数超过 3 门的学生
C. 筛选出成绩大于 3 分的记录 D. 筛选出前 3 个分组
17.若要查询学生表中,学号(Sno)为 'S001', 'S003', 'S005' 的学生,最简洁的写法是( )。
A. WHERE Sno = 'S001' OR Sno = 'S003' OR Sno = 'S005'
B. WHERE Sno IN ('S001', 'S003', 'S005')
C. WHERE Sno BETWEEN 'S001' AND 'S005'
D. WHERE Sno LIKE 'S00_'
18.现有表 A(id, val) 和 B(id, val)。执行 SELECT * FROM A RIGHT JOIN B ON A.id = B.id WHERE A.id IS NULL; 的结果是( )。
A. A 表和 B 表的公共部分 B. A 表独有的数据
C. B 表中有但 A 表中没有的数据 D. A 表和 B 表的并集
19.若要查询学生表中“年龄不为空”且“性别为男”的学生,正确的 WHERE 条件是( )。
A. WHERE Sage != NULL AND Ssex = '男'
B. WHERE Sage IS NOT NULL AND Ssex = '男'
C. WHERE Sage <> NULL AND Ssex = '男'
D. WHERE NOT (Sage = NULL) AND Ssex = '男'
20.查询employees表中各部门的平均工资,并按平均工资降序排列,正确的语句是( )
A. SELECT department, AVG(salary) FROM employees GROUP BY department ORDER BY AVG(salary)
B. SELECT department, AVG(salary) FROM employees GROUP BY department ORDER BY AVG(salary) DESC
C. SELECT department, AVG(salary) FROM employees ORDER BY AVG(salary) DESC GROUP BY department
D. SELECT department, AVG(salary) FROM employees GROUP BY AVG(salary) ORDER BY department
2、 判断题(本大题共10小题,每题2分,共20分)
21.WHERE子句可以在GROUP BY子句之后使用。( )
22.HAVING子句可以单独使用,不需要GROUP BY子句。( )
23.DISTINCT可以用于多个列,返回这些列组合的唯一值。( )
24.连接查询时,如果两个表有同名列,必须使用表别名或完全限定列名。( )
25.在 SQL 查询中,WHERE 子句可以使用聚合函数(如 SUM, COUNT)作为筛选条件。( )
26.在 MySQL 中,!= 和 <> 都可以表示“不等于”。( )
27.GROUP BY 子句后面只能跟一个字段,不能跟多个字段。( )
28. 在 ORDER BY 子句中,可以指定多个排序字段。( )
29.使用 INNER JOIN 连接两个表时,如果连接条件不成立,该行数据不会出现在结果集中。( )
30.LIMIT 5 表示跳过前 5 条记录,取后面的所有记录。( )
三、填空题(本大题共10个题,每题2分,共20分)
31.在SELECT语句中,用于指定返回所有列的符号是________。
32.在SQL中,用于对结果集进行分组的子句是________。
33.在SELECT语句中,用于对结果进行排序的子句是________。
34.在SELECT语句中,用于过滤分组后的结果的子句是________。
35.查询products表中价格最高的产品,应该使用________聚合函数。
36.在WHERE子句中,用于匹配多个值的运算符是________。
37.在 SELECT 语句中,ORDER BY 子句默认排序方式是________。
38.使用字段别名时,可以通过关键字______来为字段指定一个临时的名称。
39.若要查询学生表中名字以“李”开头的所有学生,WHERE 条件应写作 WHERE Sname LIKE '______'。
40.如果需要按多个字段分组,GROUP BY 子句中各字段之间用______分隔。
三、命令题(本大题共5题,每题4分,共20分)
41.从students表中选择所有列,并按birth_date升序排列。
42.从employees表中选择first_name、last_name和salary,只显示工资(salary)大于5000的记录,并按工资降序排列。
43.统计orders表中每个客户的订单数量,只显示订单数量大于5的客户,并按订单数量降序排列。其中,customer_id为客户号。
44.连接orders表和customers表,显示订单号、订单日期和客户姓名,只显示2019年的订单,按订单日期降序排列。其中,order_id为订单号,order_date为订单日期,customer_name为客户姓名。
45.查询“选课表(SC)”中每个学生的平均成绩,要求只显示平均成绩大于等于 60 分的学生学号(Sno)和平均成绩(AvgGrade)。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第39卷为考点训练卷,按《数据库原理与应用技术-MySQL》范围和要求编写。具体内容为:1.基本查询语句SELECT的使用:单表查询的相关操作:查询部分字段;2.按条件查询;3.分组聚合查询;4.连接查询
2027版河北省《计算机类考纲百套卷》 第39卷
《数据库原理与应用技术-MySQL》
Select查询 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共25小题,每题2分,共50分)
1.要从students表中选择name和age两列,正确的SELECT语句是( )
A. SELECT * FROM students B. SELECT name, age FROM students
C. SELECT name AND age FROM students D. SELECT name; SELECT age FROM students
【答案】B
【解析】要选择特定列,应在SELECT后列出列名,用逗号分隔。
2.内连接(INNER JOIN)返回( )
A. 左表的所有记录和右表匹配的记录 B. 右表的所有记录和左表匹配的记录
C. 两个表中所有匹配的记录 D. 两个表中的所有记录
【答案】C
【解析】INNER JOIN只返回两个表中匹配的记录,不匹配的记录不会出现在结果中。
3.查询employees表中姓氏为'张'的员工,WHERE子句应为( )
A. WHERE last_name = '张' B. WHERE last_name LIKE '张%'
C. WHERE last_name LIKE '%张%' D. 以上都可以
【答案】B
【解析】如果要查询以'张'开头的姓氏,使用LIKE '张%'。=用于精确匹配,LIKE '%张%'用于包含'张'的任意位置。
4.查询scores表中每个学生的平均分,应该使用( )聚合函数。
A. COUNT() B. SUM() C. AVG() D. MAX()
【答案】C
【解析】AVG()函数用于计算平均值,可以计算每个学生的平均分。
5.在SELECT语句中,DISTINCT关键字的作用是( )
A. 对结果进行排序 B. 过滤重复的行
C. 分组统计 D. 连接表
【答案】B
【解析】DISTINCT关键字用于返回唯一不同的值,过滤结果集中的重复行。
6.在GROUP BY子句中,HAVING和WHERE的主要区别是( )
A. HAVING在分组前过滤,WHERE在分组后过滤
B. HAVING在分组后过滤,WHERE在分组前过滤
C. 两者没有区别
D. HAVING只能用于聚合函数,WHERE不能用于聚合函数
【答案】B
【解析】WHERE在分组前过滤行,HAVING在分组后过滤组。HAVING可以使用聚合函数,WHERE不能。
7.在SELECT语句中,LIMIT子句的作用是( )
A. 限制返回的行数 B. 限制分组数量
C. 限制连接的表数 D. 限制查询时间
【答案】A
【解析】LIMIT子句用于限制查询结果返回的行数,常用于分页。
8.左外连接(LEFT JOIN)返回( )
A. 左表的所有记录,右表只返回匹配的记录 B. 右表的所有记录,左表只返回匹配的记录
C. 两个表中所有匹配的记录 D. 两个表中的所有记录
【答案】A
【解析】LEFT JOIN返回左表的所有记录,以及右表中匹配的记录。如果右表没有匹配的记录,则返回NULL。
9.查询products表中产品名称包含'手机'的产品,WHERE子句为( )
A. WHERE product_name = '手机' B. WHERE product_name LIKE '手机%'
C. WHERE product_name LIKE '%手机%' D. WHERE product_name IN ('手机')
【答案】C
【解析】包含'手机'使用LIKE '%手机%',%表示任意字符的任意数量。
10.在连接查询中,ON和WHERE的主要区别是( )
A. ON用于指定连接条件,WHERE用于过滤结果
B. ON用于过滤结果,WHERE用于指定连接条件
C. 两者可以互换
D. ON用于内连接,WHERE用于外连接
【答案】A
【解析】ON子句指定连接条件,WHERE子句过滤查询结果。在连接查询中,先执行ON条件,再执行WHERE条件。
11.在“学生成绩管理系统”中,若要查询“学生表(Student)”中所有姓“张”且名字只有两个字的学生信息,正确的SQL语句是( )。
A. SELECT * FROM Student WHERE Sname LIKE '张%';
B. SELECT * FROM Student WHERE Sname LIKE '张_';
C. SELECT * FROM Student WHERE Sname = '张?';
D. SELECT * FROM Student WHERE Sname LIKE '张*';
【答案】B
【解析】% 代表任意长度的字符串,_ 代表任意单个字符。
12.执行 SQL 语句 SELECT COUNT(*) FROM Score WHERE Grade IS NULL; 的作用是( )。
A. 统计成绩表中所有记录的总数
B. 统计成绩表中成绩为 0 分的记录数
C. 统计成绩表中成绩字段为空值(NULL)的记录数
D. 统计成绩表中成绩不为空的记录数
【答案】C
【解析】WHERE Grade IS NULL 明确筛选出成绩为 NULL 的行,COUNT(*) 统计这些行的总数。
13.现有学生表 Student(Sno, Sname, Sage, Sdept),若要查询“计算机系”和“数学系”的学生姓名和年龄,且结果按年龄降序排列,正确的SQL是( )。
A. SELECT Sname, Sage FROM Student WHERE Sdept IN ('计算机系', '数学系') ORDER BY Sage DESC;
B. SELECT Sname, Sage FROM Student WHERE Sdept = '计算机系' OR '数学系' ORDER BY Sage ASC;
C. SELECT Sname, Sage FROM Student WHERE Sdept LIKE '计算机系,数学系' ORDER BY Sage DESC;
D. SELECT Sname, Sage FROM Student GROUP BY Sdept HAVING Sdept IN ('计算机系', '数学系') ORDER BY Sage;
【答案】A
【解析】使用 IN 可以方便地筛选多个离散值;ORDER BY Sage DESC 实现降序排列。
14.现有两个表:班级表 Class(CID, CName) 和 学生表 Student(SID, SName, CID)。执行如下 SQL:SELECT C.CName, COUNT(S.SID) FROM Class C LEFT JOIN Student S ON C.CID = S.CID GROUP BY C.CID;
该查询的结果是( )。
A. 统计每个班级的学生人数,不包含没有学生的班级
B. 统计每个班级的学生人数,包含没有学生的班级(人数显示为0)
C. 统计所有有班级归属的学生总数
D. 报错,因为 LEFT JOIN 不能与 GROUP BY 一起使用
【答案】B
【解析】使用 LEFT JOIN 保证了班级表的所有记录都会出现。对于没有学生的班级,S.SID 为 NULL,COUNT(S.SID) 会统计为 0。
15.若要查询学生表中第 11 条到第 20 条记录(每页 10 条,取第 2 页),在 MySQL 中正确的语句是( )。
A. SELECT * FROM Student LIMIT 10, 10;
B. SELECT * FROM Student LIMIT 10 OFFSET 20;
C. SELECT * FROM Student LIMIT 11, 20;
D. SELECT * FROM Student LIMIT 20, 10;
【答案】A
【解析】MySQL LIMIT 偏移量, 行数。
16.语句 SELECT Sno, COUNT(*) FROM SC GROUP BY Sno HAVING COUNT(*) > 3; 中,HAVING COUNT(*) > 3 的含义是( )。
A. 筛选出学号大于 3 的学生 B. 筛选出选课门数超过 3 门的学生
C. 筛选出成绩大于 3 分的记录 D. 筛选出前 3 个分组
【答案】B
【解析】COUNT(*) 在分组查询中统计的是每个分组(每个学生)的记录数(选课门数)。
17.若要查询学生表中,学号(Sno)为 'S001', 'S003', 'S005' 的学生,最简洁的写法是( )。
A. WHERE Sno = 'S001' OR Sno = 'S003' OR Sno = 'S005'
B. WHERE Sno IN ('S001', 'S003', 'S005')
C. WHERE Sno BETWEEN 'S001' AND 'S005'
D. WHERE Sno LIKE 'S00_'
【答案】B
【解析】IN 列表查询最简洁且高效。
18.现有表 A(id, val) 和 B(id, val)。执行 SELECT * FROM A RIGHT JOIN B ON A.id = B.id WHERE A.id IS NULL; 的结果是( )。
A. A 表和 B 表的公共部分 B. A 表独有的数据
C. B 表中有但 A 表中没有的数据 D. A 表和 B 表的并集
【答案】C
【解析】右连接保留 B 表所有数据,WHERE A.id IS NULL 筛选出 A 表未匹配上的行,即 B 表独有的数据。
19.若要查询学生表中“年龄不为空”且“性别为男”的学生,正确的 WHERE 条件是( )。
A. WHERE Sage != NULL AND Ssex = '男'
B. WHERE Sage IS NOT NULL AND Ssex = '男'
C. WHERE Sage <> NULL AND Ssex = '男'
D. WHERE NOT (Sage = NULL) AND Ssex = '男'
【答案】B
【解析】判断是否为空必须使用 IS NULL 或 IS NOT NULL,不能使用比较运算符 = 或 !=。
20.查询employees表中各部门的平均工资,并按平均工资降序排列,正确的语句是( )
A. SELECT department, AVG(salary) FROM employees GROUP BY department ORDER BY AVG(salary)
B. SELECT department, AVG(salary) FROM employees GROUP BY department ORDER BY AVG(salary) DESC
C. SELECT department, AVG(salary) FROM employees ORDER BY AVG(salary) DESC GROUP BY department
D. SELECT department, AVG(salary) FROM employees GROUP BY AVG(salary) ORDER BY department
【答案】B
【解析】先按部门分组计算平均工资,然后按平均工资降序排列。ORDER BY可以使用聚合函数。
2、 判断题(本大题共10小题,每题2分,共20分)
21.WHERE子句可以在GROUP BY子句之后使用。( )
【答案】错
【解析】WHERE子句必须在GROUP BY子句之前,用于在分组前过滤行。
22.HAVING子句可以单独使用,不需要GROUP BY子句。( )
【答案】错
【解析】HAVING子句通常与GROUP BY子句一起使用,用于过滤分组。没有GROUP BY时,整个结果集作为一个分组。
23.DISTINCT可以用于多个列,返回这些列组合的唯一值。( )
【答案】对
【解析】DISTINCT 作用于其后所有列,不是单独去重某一列,而是把多列的值作为一个整体组合,剔除重复的组合,只保留唯一的行列组合。
24.连接查询时,如果两个表有同名列,必须使用表别名或完全限定列名。( )
【答案】对
【解析】当列名不明确时,需要使用table.column或别名来指定,避免歧义。
25.在 SQL 查询中,WHERE 子句可以使用聚合函数(如 SUM, COUNT)作为筛选条件。( )
【答案】错
【解析】WHERE 过滤的是行,聚合函数计算的是组,聚合条件必须放在 HAVING 子句中。
26.在 MySQL 中,!= 和 <> 都可以表示“不等于”。( )
【答案】对
【解析】<> 是标准 SQL 不等于,通用兼容;!= MySQL 也支持,效果和 <> 完全一样。
27.GROUP BY 子句后面只能跟一个字段,不能跟多个字段。( )
【答案】错
【解析】可以跟多个字段,表示按这些字段的组合进行分组。
28. 在 ORDER BY 子句中,可以指定多个排序字段。( )
【答案】对
【解析】ORDER BY 支持指定多个排序字段,按先后优先级排序:先按第一个字段排序,第一个字段值相同时,再按第二个字段排序。
29.使用 INNER JOIN 连接两个表时,如果连接条件不成立,该行数据不会出现在结果集中。( )
【答案】对
【解析】内连接只保留匹配成功的行。
30.LIMIT 5 表示跳过前 5 条记录,取后面的所有记录。( )
【答案】错
【解析】LIMIT 5 表示取前 5 条记录。
三、填空题(本大题共10个题,每题2分,共20分)
31.在SELECT语句中,用于指定返回所有列的符号是________。
【答案】*
【解析】在SELECT语句中,星号(*)是通配符,表示返回表中的所有列。
32.在SQL中,用于对结果集进行分组的子句是________。
【答案】GROUP BY
【解析】GROUP BY子句用于将结果集按照一个或多个列进行分组,通常与聚合函数一起使用。
33.在SELECT语句中,用于对结果进行排序的子句是________。
【答案】ORDER BY
【解析】ORDER BY子句用于对查询结果进行排序,可以指定升序(ASC)或降序(DESC)。
34.在SELECT语句中,用于过滤分组后的结果的子句是________。
【答案】HAVING
【解析】 HAVING子句用于过滤分组后的结果,而WHERE子句用于过滤行。
35.查询products表中价格最高的产品,应该使用________聚合函数。
【答案】MAX()
【解析】MAX()函数返回最大值,可以找到价格最高的产品。
36.在WHERE子句中,用于匹配多个值的运算符是________。
【答案】IN
【解析】IN运算符用于匹配多个值。
37.在 SELECT 语句中,ORDER BY 子句默认排序方式是________。
【答案】升序
【解析】默认是升序(ASC),降序需显式指定 DESC。
38.使用字段别名时,可以通过关键字______来为字段指定一个临时的名称。
【答案】As
【解析】AS 关键字用于为字段或表指定别名。
39.若要查询学生表中名字以“李”开头的所有学生,WHERE 条件应写作 WHERE Sname LIKE '______'。
【答案】李%。
【解析】% 是通配符,代表任意长度的字符串。
40.如果需要按多个字段分组,GROUP BY 子句中各字段之间用______分隔。
【答案】逗号
【解析】多字段用逗号分组。
三、命令题(本大题共5题,每题4分,共20分)
41.从students表中选择所有列,并按birth_date升序排列。
【答案】SELECT * FROM students ORDER BY birth_date ASC;
【解析】SELECT * 选择所有列,ORDER BY 排序,ASC可省略。
42.从employees表中选择first_name、last_name和salary,只显示工资(salary)大于5000的记录,并按工资降序排列。
【答案】SELECT first_name, last_name, salary FROM employees WHERE salary > 5000
ORDER BY salary DESC;
【解析】选择特定列,WHERE过滤条件,ORDER BY降序排列。
43.统计orders表中每个客户的订单数量,只显示订单数量大于5的客户,并按订单数量降序排列。其中,customer_id为客户号。
【答案】SELECT customer_id, COUNT(*) as order_count FROM orders GROUP BY customer_id HAVING COUNT(*) > 5 ORDER BY order_count DESC;
【解析】GROUP BY分组,COUNT()计数,HAVING过滤分组,ORDER BY排序,使用列别名。
44.连接orders表和customers表,显示订单号、订单日期和客户姓名,只显示2019年的订单,按订单日期降序排列。其中,order_id为订单号,order_date为订单日期,customer_name为客户姓名。
【答案】SELECT o.order_id, o.order_date, c.customer_name FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id WHERE YEAR(o.order_date) = 2019 ORDER BY o.order_date DESC;
【解析】INNER JOIN连接,ON连接条件,WHERE过滤,ORDER BY排序,使用表别名。
45.查询“选课表(SC)”中每个学生的平均成绩,要求只显示平均成绩大于等于 60 分的学生学号(Sno)和平均成绩(AvgGrade)。
【答案】
SELECT Sno, AVG(Grade) AS AvgGrade FROM SC GROUP BY Sno HAVING AVG(Grade) >= 60;
【解析】考查分组查询(GROUP BY)、聚合函数(AVG)以及分组后的条件筛选(HAVING)。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$