当前位置:首页 > 数据库原理实验答案
五、测试数据及结果:
与预测结果一样。
六、心得体会与自我评价:
这次的实验是在上次的实验的基础上加上他的一些约束条件,相对来说也是比较简单的,操作也相对容易。
实验( 三 )
实验名称: 数据库单表查询 实验时间: 2013-4-1
一、实验目的:
1. 掌握SELECT语句的基本语法和查询条件表示方法; 2. 掌握查询条件表达式和使用方法; 3. 掌握GROUP BY 子句的作用和使用方法; 4. 掌握HAVING子句的作用和使用方法; 5. 掌握ORDER BY子句的作用和使用方法。
二、实验内容:
1、以数据库原理实验三数据库中数据为基础,请使用T-SQL 语句实现以下操作: 1) 列出所有不姓刘的所有学生;
2) 列出姓“沈”且全名为3个汉字的学生; 3) 显示在1985年以后出生的学生的基本信息;
4) 按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下
规定显示:性别为男显示为男 生,性别为女显示为女 生,其他显示为“条件不明”;
5) 查询出课程名含有“数据”字串的所有课程基本信息;
6) 显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、
年龄及院系;
7) 列出选修了‘1’课程的学生,按成绩的降序排列;
8) 列出同时选修“1”号课程和“2”号课程的所有学生的学号; 9) 列出课程表中全部信息,按先修课的升序排列;
10) 列出年龄超过平均值的所有学生名单,按年龄的降序显示;
11) 按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果
集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;
12) 显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院
系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”, 若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”;
13) 按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩; 14) 显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学
生总人数,平均年龄”;
15) 显示选修的课程数大于3的各个学生的选修课程数;
16) 按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩; 选做题:
17) 显示平均成绩大于“200515001”学生平均成绩的各个学生的学号、平均成绩; 18) 显示选修每门课程的及格人数;
19) 显示被选修最多的课程数和最少的课程数;
20) 显示各个院系男女生人数,其中在结果集中列标题分别指定为“院系名称、男生
人数、女生人数”;
21) 列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;
三、源程序:
1
select student.* from student
where sname not like'刘%' 2
select student.* from student
where sname like'沈 ' 3
select student.* from student where sage<28 4
select ssex=
case when ssex='男'then'男生' when ssex='女'then'女生' else'条件不明'
end,sno,sname,sdept from student 5
select cname from course
where cname like'%数据%'
6
select sno,sname,ssex,sage,sdept from student
where sno like ' [12349]%' or sno like ' [12349]%' 7
select student.sno,sname,grade from student,sc where Cno='1' order by Grade desc 8
select sno,Cno from sc
where cno=1 or cno=2 9
select * from course order by cpno asc 10
select sno,sname from student
where sage>(select AVG(sage)from student) order by sage desc 11
select sno 学号,sname 姓名,ssex 性别,出生年份=year(GETDATE())-sage,sdept 院系
from student
order by sage desc 12
select sdept, sdept= case
when COUNT(distinct sno)>=5then '规模很大'
when COUNT(distinct sno)>=4and COUNT(distinct sno)<5 then '规模一般' when COUNT(distinct sno)>=2and COUNT(distinct sno)<4 then '规模小' when COUNT(distinct sno)<2 then '规模很小' end
from student group by sdept 13
select sno,cno,grade from sc
where Grade>=70 and Grade<=80 order by Cno desc,Grade desc 14
select 学生总人数=COUNT(distinct sno),平均年龄=AVG(sage)
共分享92篇相关文档