数据库原理及应用实验报告 3

实验成绩

《数据库系统原理及应用》

实验报告

专业班级:     计科(卓)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”,恢复“学生-课程”数据库中所有表的结构及数据;

实验报告:

描述实验的详细实现步骤

写出设计心得,总结各种数据更新的方法和特点;在数据更新时保持数据一致性的问题;比较企业管理器和查询分析器使用的特点。

在插入,更新以及删除数据时需要保持数据一致性,这样才能正常操作,这就需要弄清楚对各个表之间的关系。企业管理器主要用于数据库备份,还能很方便的建立关系,很直观。二查询分析器主要用于查询各种逻辑上的关系。

相关推荐