数据库第9章查询练习题目有答案.docx

数据库第9章查询练习题目有答案.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
精品文档 精品文档 PAGE PAGE10 精品文档 PAGE 第九章习题 分组查询练习 a). 基于“生源情况”表,统计不同姓的人数, 列出:姓、人数, 结果按人数降序排序。(先统计所有学生的人数) SELECTleft( 姓名,1)as 姓,count(*)as 人数 FROM生源情况 groupbyleft( 姓名,1) ORDERBYcount(*)DESC b). 基于“生源情况”表,按地区分类统计入学成绩的平均值、 最大值、最小值,并按平均值降序排列。 先统计所有入学成绩 的的平均值、最大值、最小值) SELECT地区,avg(入学成绩)as 平均值,max(入学成绩)as 最大值,min(入学成绩)as 最 小值 FROM生源情况 groupby 地区 ORDERBYavg(入学成绩)DESC c). 基于“生源情况”表,找出年龄平均值最高的班级。 (提示: 先按班级名称统计每个班级的平均年龄,再找年龄的最大值) SELECTTOP1班级名称,AVG(year(date())-year( 出生日期))as 平均年龄 FROM生源情况 GROUPBY班级名称 ORDERBYAVG(year(date())-year( 出生日期))DESC d). 基于“生源情况”表,列出学生人数少于 100的地区。 select 地区,count(*)as 学生人数 from 生源情况 groupby 地区 havingcount(*)<100 联接查询练习 a). 列举学号为“ 6”的同学所参加的考试的场次、教室和课程 名称。 select 场次,教室,课程名称 from 学生考试 innerjoin 课程on 学生考试.课程编号=课程.课程编号 where学号="6" 或 select 场次,教室,课程名称 from 学生考试,课程 where学号="6"and 学生考试.课程编号=课程.课程编号 b). 列举学号为“ 6”的同学所参加的每场考试的监考教师的姓 名。 select 姓名 from( 学生考试innerjoin 教师监考 on 学生考试.场次=教师监考.场次and 学生考试. 课程编号=教师监考.课程编号 and 学生考试.教室=教师监考.教室)innerjoin 教师on 教师监考.教师编号=教师.教师编号 where学号="6" 或 select 姓名 from 学生考试,教师监考,教师 where学号="6"and 学生考试.场次=教师监考.场次 and学生考试.课程编号=教师监考.课程编号 and 学生考试.教室=教师监考.教室 and教师监考.教师编号=教师.教师编号 c). 列举来自“浙江”的学生的所在学院名称、班级名称、学号 和姓名。 SELECT学院名称, 班级名称, 学号, 姓名 FROM(学院INNERJOIN 班级ON学院.学院编号 = 班级.学院编号)INNERJOIN 学生ON 班级.班级编号 = 学生.班级编号 WHERE地区="浙江" 或 SELECT学院名称, 班级名称, 学号, 姓名 FROM学院,班级,学生 WHERE地区="浙江"and 学院.学院编号= 班级.学院编号 and 班级.班级编号 = 学生.班 级编号 d). 查询“梁子平”同学所在班级的学生人数。 SELECT班级人数 FROM班级INNERJOIN 学生ON班级.班级编号= 学生.班级编号 WHERE姓名="梁子平" 或 SELECT班级人数 FROM班级,学生 WHERE姓名="梁子平"and 班级.班级编号 = 学生.班级编号 或 selectcount(*) from 学生 where班级编号in(SELECT 班级编号 from 学生WHERE姓名="梁子平") 或 select 班级人数 from 班级 where班级编号in(SELECT 班级编号 from 学生WHERE姓名="梁子平") 子查询 a). 找出与学号“6”的学生同学院且同年出生的学生。 先作这个查询,学院编号为” 01”和1991出生的学生信息 select 学生.* from 学生innerjoin 班级on 学生.班级编号=班级.班级编号 where学院编号="01"andyear( 出生日期)=1991 第一步:先找到该同学所在学院的编号 select 学院编号 from 班级 where班级编号in(select 班级编号 from 学生where 学号="6") 第二步:找到年份 SELECTyear(出生日期)from 学生where 学号="6" 第三步:多表连接 select 学生.* from 学生innerjoin 班级on 学生.班级编号=班级.班级编号 where学院编号in( select 学院编号 f

文档评论(0)

151****9732
该用户很懒,什么也没介绍

相关文档

相关课程推荐