数据库SQL实验报告SQL交互式查询(单表查询).doc
文本预览下载声明
实验3 SQL交互式查询(单表查询) 实验日期和时间: 实验室: 班级: 学号: 姓名: 实验环境:
硬件:计算机
软件:windows 7 SQL 2000
实验主要任务:
在实验1中建立的学生选课数据库中,用SQL语句完成下列查询任务
在学生表中查询姓名为“张晶晶”学生的记录。
查询“会计系”全体女同学的记录,列出学号、姓名、年龄。
查询非“金融系”且年龄小于等于20岁的学生记录,列出学号、姓名、系编号。
查询所有2009级(学号以2009 开头)的学生的成绩,列出学号、课程号、成绩,查询结果按课程号排序。
查询所有低于60 分的学生成绩记录,列出学号、课程号、成绩,结果按课程号、学号排序列表。
查询选修了1 号课程并且成绩大于等于90分的学生记录,列出学号、成绩,并按成绩降序排序。
查询超过2 学分(大于)的课程记录。
查询学生表中所有1993年出生的学生的记录,按出生日期排序。
统计全体学生的总人数。
统计各系的学生人数,列出所在系、人数。
统计各门课的平均分,列出课程号、平均分。
查询选修人数不足5 人的课程,列出课程号、人数。
查询1:在学生表中查询姓名为“张晶晶”学生的记录。
代码:select * from 学生 where 姓名=张晶晶
执行结果:
说明:查询的姓名有改动 查询2:查询“会计系”全体女同学的记录,列出学号、姓名、年龄。
代码:select * from 学生,系 where 系名=会计 and 系.系编号=学生.系编号
执行结果:
说明: 查询3:查询非“金融系”且年龄小于等于21岁的学生记录,列出学号、姓名、系编号、系名。
代码:select 学号,姓名,学生.系编号,系名 from 学生,系
where 系名金融 and 系.系编号=学生.系编号 and year(getdate())-year(出生日期)21
执行结果:
说明:改成21岁,添加了系名显示 查询4:查询所有2009级(学号以2009 开头)的学生的成绩,列出学号、课程号、成绩,查询结果按课程号排序
代码:select 学号,课程号,成绩 from 选课
where 学号 like 2009%
order by 课程号
执行结果:
说明: 查询5:查询所有低于80 分的学生成绩记录,列出学号、课程号、成绩,结果按课程号、学号排序列表
代码:select 学号,课程号,成绩 from 选课
where 成绩80
order by 课程号,学号
执行结果:
说明:低于60分改成了 低于80分
查询6:查询选修了0001 号课程并且成绩大于等于90分的学生记录,列出学号、成绩、课程号,并按成绩降序排序
代码:select 学号,成绩 ,课程号 from 选课
where 成绩90 and 课程号=0001
order by 成绩 DESC
执行结果:
说明:1号课程 改成了 课程号0001,显示时候加了属性 课程号 查询7:查询超过4 学分(大于)的课程记录
代码:select * from 课程 where 学分4
执行结果:
说明:超过2学分 改成了 超过 4学分
查询8:查询学生表中所有1990年出生的学生的记录,按出生日期排序
代码:select * from 学生
where year(出生日期)=1990
order by 出生日期
执行结果:
说明:查询1993年出生 改成了 1990 查询9:统计全体学生的总人数
代码:select count(学号) as 总人数 from 学生
执行结果:
说明: 查询10:统计各系的学生人数,列出所在系、人数
代码:select 系名,sum(选课人数) as 人数 from 系, 授课,课程
where 系.系编号=课程.系编号 and 课程.课程号=授课.课程号
group by 系名
执行结果:
说明: 查询11:统计各门课的平均分,列出课程号、平均分
代码:select 课程号,avg(成绩) as 平均分 from 选课
group by 课程号
执行结果:
说明: 查询12:查询选修人数不足100人的课程,列出课程号、人数
代码:select 课程号,选课人数 as 人数 from 授课
where 选课人数100
执行结果:
说明:不足5人 改成了 不足100人
你在完成查询任务1-12的过程中遇到的问题及解决的方法有:
实验10:
代码:select 系名,sum(选课人数) as 人数 from 系, 授课,课程
where 系.系编号=课程.系编号 and 课程.课程号=授课.课程号
group by 系.系编号
结果:
解决办法:把group by 后面的 系.系编号 给
显示全部