实验成绩
《数据库系统原理及应用》
实验报告
三
专业班级: 计科(卓)1101
学 号: 201116910233
姓 名: 范晓曈
指导教师: 苏小玲
20##年 10 月 25 日
实验三名称: T-SQL简单数据库查询
一、实验内容及要求
1.在实验二创建的数据库的基础上做查询,请在数据表中添加合适的记录以便能够验证查询结果
2.单表查询
(1)查询C001课程的最高分和最低分
(2)统计每个系的学生人数
(3)查询还没有考试的课程的课程号
3.连接查询
(1)统计每门课程的选课人数和考试最高分
(2)统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果
(3)查询选修C002课程的学生的姓名和所在系
(4)查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果
(5)查询选课门数最多的前两位学生,列出他们的学号和选课门数
二、实验目的
熟练掌握变量的定义、赋值与使用;
熟练掌握常用基本运算符。
熟练掌握流程控制语句,尤其是条件语句和循环语句。
三、实验步骤及运行结果
1.插入数据
学生信息:
insert into Student
values ('201116910233','范晓曈','女','计科')
insert into Student
values ('201116910228','王铭','女','计科')
insert into Student
values ('201116910231','李贞','女','电信')
insert into Student
values ('201116910232','师楠','女','电信')
insert into Student
values ('201116910222','谢剑章','男','计科')
insert into Student
values ('201116910224','陈阳阳','男','计科')
老师信息:
insert into teacher
values('001','苏小玲','0001','3230')
insert into teacher
values('002','王晓松','0002','4333')
insert into teacher
values('003','郑丽萍','0003','4234')
课程信息:
insert into course
values('C001','0001','001','数据库','3~15')
insert into course
values('C002','0002','002','计算机网络','1~13')
insert into course
values('C003','0003','003','计算机系统结构','1~14')
insert into course
values('C004','0004','004','软件工程','1~11')
insert into course
values('C005','0005','005','C++','1~10')
选课信息:
insert into sc
values('201116910233','C001','2013.8.31','90','90')
insert into sc
values('201116910228','C001','2013.9.1','92','92')
insert into sc
values('201116910224','C001','2013.8.30','94','93')
insert into sc
values('201116910222','C001','2013.8.31','95','94')
insert into sc
values('201116910231','C001','2013.8.29',null,null)
insert into sc
values('201116910222','C002','2013.8.31','95','00')
insert into sc
values('201116910224','C002','2013.8.30','90','80')
insert into sc
values('201116910228','C002','2013.8.31','92','84')
insert into sc
values('201116910233','C002','2013.8.30','92','79')
insert into sc
values('201116910233','C003','2013.8.30','92','85')
insert into sc
values('201116910228','C003','2013.9.1','92','90')
insert into sc
values('201116910224','C003','2013.9.2','92','92')
insert into sc
values('201116910222','C003','2013.8.31','93','92')
insert into sc
values('201116910231','C004','2013.8.30',null,null)
insert into sc
values ('201116910231','C005','2013.8.31',null,null)
用户信息:
insert into admin
values('谢剑章','10222')
insert into admin
values('陈阳阳','10224')
insert into admin
values('王铭','10228')
insert into admin
values('范晓曈','10233')
insert into admin
values('李贞','10231')
insert into admin
values('师楠','10232')
系表信息:
insert into dept
values('1691','数据库','0001','办公楼')
insert into dept
values('1692','计算机','0002','5办公楼')
insert into dept
values('1693','计科','0003','6办公楼')
insert into dept
values('1694','软件','0004','6办公楼')
2.单表查询
(1)查询C001课程的实践成绩的最高分和最低分
select MAX(sscore) 最高分,MIN(sscore) 最低分
from sc where Cno = 'C001'
(2)查询C001课程的考试成绩的最高分和最低分
select MAX(kscore) 最高分,MIN(kscore) 最低分
from sc where Cno = 'C001'
(3)统计每个系的学生人数
select Sdept as 系名 ,COUNT(*) 人数
from student
group by Sdept order by Sdept
(4)查询还没有考试的课程的课程号
select cno as 课程号 from sc
where sscore is null
3.连接查询
(1)统计每门课程的选课人数和考试成绩最高分
select cno as 课程号,COUNT (sno) as 选课人数,MAX (sscore) as 最高分
from sc group by cno
(2)统计每门课程的选课人数和实践成绩最高分
select cno as 课程号,COUNT (sno) as 选课人数,MAX (kscore) as 最高分
from sc group by cno
(2)统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果
select sno as 学号, count(*) as 选课门数,sum(sscore) as 考试总成绩
from sc
group by sno
order by count(*)
(3)统计每个学生的选课门数和实践总成绩,并按选课门数升序显示结果
select sno as 学号, count(*) as 选课门数,sum(kscore) as 实践总成绩
from sc
group by sno
order by count(*)
(4)查询选修C002课程的学生的姓名和所在系
select sname as 姓名,Sdept as 所在系
from student s join sc on s.Sno=sc.sno
where cno='C002'
(5)查询考试成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果
select sname as 姓名,cno as 课程号,sscore as 考试成绩
from student s join sc on s.sno=sc.sno
where sscore >80
order by sscore desc
(6)查询考试成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果
select sname as 姓名,cno as 课程号,kscore as 实践成绩
from student s join sc on s.sno=sc.sno
where kscore >80
order by kscore desc
(7)查询选课门数最多的前两位学生,列出他们的学号和选课门数
select top 2 sno as 学号,COUNT (cno) as 选课门数
from sc
group by sno order by COUNT (cno) desc
四、实验体会或实验中遇到的问题
通过这次数据库的设计,使我加深了对数据库知道的进一步了解,为了做好这次课程设计,我又学习了跟题目相关的数据库知识和VB编程语言,。
除此之外,还有上网查询一些相关的资料,和一些实际问题实现的例子,通过理解别人实现的过程,学习实现的一些基本思路。在这个过程中,我对整个连接数据库程序的过程有了一个更立体的认识和了解。
在这次的设计中,让我进一步认识了数据库的设计过程以及设计各阶段所做的工作和要注意的细节部分,对于数据库的功能也有了更加深的了解。
计算机科学系实验报告 (首页)
课程名称 数据库系统概论 班 级 网络工程2班
实验名称 实验三数据库中数据的更新 指导教师 索剑
姓名 李文森 学号 1214080613213
日期 20##年 5月20日
实验目的:
掌握数据输入、删除和修改的方法;理解各种约束的作用。
实验类型:验证
实验内容:
插入数据;修改数据;删除数据
操作步骤:
1) 打开实验1建立的数据库
2) 在查询分析器中完成以下插入语句
将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中;
INSERT INTO Student VALUES('95020','陈冬','男','18','IS');
不能插入数据,因为主键已存在
插入一条选课记录(’95099’,’1’);
因为Student与SC表建立了了关系,每次向SC表插入数据都需要参照Student表是否存在该值,所以应该先向Student 表插入,再到SC表插入
INSERT INTO Student(Sno) VALUES('95099');
INSERT INTO SC(Sno,Cno) VALUES('95099','1');
对每一个系,求学生的平均年龄,并把结果存入数据库表Deptage中;
CREATE TABLE Deptage (Sdept varchar(10),Avg_age varchar(10) );
INSERT INTO Deptage (Sdept,Avg_age) SELECT Sdept ,AVG(Sage)
FROM student GROUP BY Sdept;
3) 建立一个新数据库“SC_BAK”,将“学生-课程”数据库中所有表的结构及数据导入“SC_BAK”中
1.新建数据库
2.导入
4) 在查询分析器中完成以下修改语句
将学生95001的年龄改为22岁;
UPDATE student SET Sage=22 WHERE Sno='95001';
将所有学生的年龄增加1岁;
UPDATE student SET Sage=Sage+1 ;
将计算机科学系全体学生的成绩置零;
5) UPDATE SC SET Grade=0 WHERE 'CS'=(SELECT Sdept FROM student WHERE student.Sno=SC.Sno) ;
6) 在查询分析器中完成以下删除语句
删除学号为‘95020’的学生记录;
因为与SC建立了关联,无法直接删除,如果SC与Student都有相同数据,需要先删除SC 表中的SC,才能删除Student的记录
DELETE FROM SC WHERE Sno='95020';
DELETE FROM Student WHERE Sno='95020';
删除所有计算机科学系的学生选课记录;
7) 利用步骤(3)建立的数据库“SC_BAK”,恢复“学生-课程”数据库中所有表的结构及数据;
实验报告:
描述实验的详细实现步骤
写出设计心得,总结各种数据更新的方法和特点;在数据更新时保持数据一致性的问题;比较企业管理器和查询分析器使用的特点。
在插入,更新以及删除数据时需要保持数据一致性,这样才能正常操作,这就需要弄清楚对各个表之间的关系。企业管理器主要用于数据库备份,还能很方便的建立关系,很直观。二查询分析器主要用于查询各种逻辑上的关系。
华北科技学院计算机学院综合性实验实验报告课程名称数据库原理与应用D实验学期20xx至20xx学年第2学期学生所在院部计算机学院年级…
数据库原理及应用实验报告数据库原理及应用实验报告学院信息科学与工程学院班级计算机20xx1班学号3100717109姓名薛斌时间2…
实验成绩数据库系统原理及应用实验报告三专业班级计科卓1101学号20xx16910233姓名范晓曈指导教师苏小玲20xx年10月2…
南京晓庄学院数据库原理与应用课程实验报告实验二数据库的创建管理备份及还原实验所在院系数学与信息技术学院班级学号姓名1实验目的1掌握…
河南省高等教育自学考试实验报告册计算机及应用专业本科段数据库原理姓名实验地点实验日期实验总成绩指导教师签名实验单位实验室意见主考院…
数据库原理与应用课程实验报告实验二数据库的创建管理备份及还原实验所在院系数信院班级学号姓名1实验目的1掌握分别使用SQLServe…
课程设计报告20xx20xx年度第2学期名称数据库原理课程设计题目院系班级软件1302学号20xx09020xx8学生姓名李兆辉指…