当前位置:文档之家› 实验报告2-关系数据库标准语言SQL

实验报告2-关系数据库标准语言SQL

实验报告2-关系数据库标准语言SQL实验2:关系数据库标准语言SQL一.实验目的通过本实验使学生掌握SQL语言的数据定义功能、数据查询功能和数据操纵功能。

二.实验类型验证型三.实验学时 4学时四.实验原理及知识点1.SQL语言的数据查询功能2.SQL语言的数据定义功能3.SQL语言的数据操纵功能五.实验环境1.硬件设备要求:PC及其联网环境;2.软件设备要求:Windows操作系统;MS SQL Server数据库管理系统。

六.实验内容及步骤在STUDENT数据库中,根据要求使用SQL语言完成下列操作,将SQL语句以.sql文件的形式保存在自己的目录下。

1.查询选修了课程的学生的学号。

2.查询学生学号和出生年份。

3.查询计算机系学生的学号、姓名。

4.查询年龄在20岁与22岁之间(包括20和22岁)的学生姓名和年龄。

5.查询学生姓名中含有“波”字的学生情况。

6.查询缺少学习成绩的学生学号和课程号。

7.查询选修C601课程的学生的学号和成绩,并按分数的降序排列。

8.求选修了课程的学生人数。

9.求课程C601的平均成绩。

10.求选修课程超过2门的学生学号。

11.查询参加学习的学生所学的课程号和总分。

12.查询选修高等数学课程且成绩在80分以上的学生的学号、姓名。

13.查询每一课程的间接先行课(即先行课的先行课)。

14.查询年龄低于所有工程系学生的学生姓名、所在系、年龄。

15.找出刘建平老师所开全部课程的课程号、课程名。

16.找出全部课程的任课教师。

17.求学生1203所学课程的总分。

18.找出所有姓张的学生的姓名和籍贯。

19.找出至少一门课程的成绩在90分以上的女学生的姓名。

20.求每一年龄上人数超过2的男生的具体人数,并按年龄从小到大排序。

21.把学生的学号及他的平均成绩定义为一个视图GRADE_VIEW。

22.创建一个从student、course、study表中查出计算机系的学生及其成绩的视图computer_view,要求显示学生的学号sno、姓名name、课程号cno、课程名称cname、成绩grade。

23.在Student表中依据学生姓名创建索引name_index。

24.在Study表中依据sno和cno创建索引main_index。

25.将课程C603的任课老师改为“赵明”。

26.在Student表中插入两个学生记录:'1201','吴华', '女',20,'成都','计算机系''1102','张军', '男',21,'上海','工程系'27.删除年龄在21岁以上的学生记录。

--1SELECT DISTINCTSno'学号'FROM Student_course;--2SELECTSno'学号',2015-Sage'出生年份' FROM Student;--3SELECTSno'学号',Sname'姓名'FROM StudentWHERE Sdept='CS';--4SELECTSname'姓名',Sage'年龄'FROM StudentWHERE Sage>=20 and Sage<= 22;--5SELECT*FROM StudentWHERE Sname LIKE'%波%';--6SELECTSno'学号',Cno'课程号'FROM Student_courseWHERE Grade is NULL;--7SELECTSno'学号',Grade'成绩'FROM Student_course WHERE Cno='C601' ORDER BY Grade DESC;--8SELECTCOUNT(DISTINCT Sno) FROM Student_course;--9SELECTAVG(Grade)FROM Student_courseWHERE Cno='C601';--10SELECTSno'学号'FROM Student_course GROUP BY SnoHAVING COUNT(Cno)> 2;--11SELECTCno'课程号',SUM(Grade)'总分' FROM Student_course GROUP BY Cno;--12SELECTStudent.Sno,Student.SnameFROM Student,Student_course,CourseWHERE Student.Sno=Student_course.Snoand o=Student_oand ame='高等数学'and Student_course.Grade> 80;--13SELECTo,SECOND.CpnoFROM Course FIRST,Course SECONDWHERE FIRST.Cpno=o;--14SELECTSname,Sdept,SageFROM StudentWHERE Sage<ANY(SELECT Sage FROM Student WHERE Sdept='EG');--15SELECTCno'课程号',Cname'课程名'FROM CourseWHERE Cteacher='刘剑平';--16SELECT DISTINCTCteacher'教师'FROM CourseWHERE Cteacher is not NULL;--17SELECTSUM(Grade)'总成绩'FROM Student_courseGROUP BY SnoHAVING Sno='201215122';--18SELECTSname'姓名',Snative'籍贯'FROM StudentWHERE Sname like'张%';--19SELECTSname'姓名'FROM StudentWHERE Ssex='女'and Sno in( SELECT SnoFROM Student_courseWHERE 90 <=Grade);--20SELECTSage'年龄',COUNT(*)'男生人数'FROM StudentWHERE Ssex='男'and Sage in (SELECTSageFROM StudentGROUP BY SageHAVING COUNT(*)>= 2)GROUP BY SageORDER BY Sage;--21CREATE VIEW GRADE_VIEWASSELECTSno,AVG(Grade)SavgFROM Student_courseGROUP BY Sno;--22CREATE VIEW COMPUTER_VIEWASSELECTStudent.Sno,Student.Sname,o,ame,Student_course.GradeFROM Student,Student_course,Course WHERE Student.Sno=Student_course.Sno and Student_o=o;--23CREATE INDEX NAME_INDEX ON Student(Sname);--24CREATE INDEX MAIN_INDEX ON Student_course(Sno,Cno);--25UPDATE CourseSET Cteacher='赵明'WHERE Cno='C603';--26INSERTINTO StudentVALUES('1201','吴华','女',20,'成都','CS'),('1102','张军','男',21,'上海','EG');--27DELETEFROM StudentWHERE Sage> 21;七.实验总结通过这次实验学会了使用SQL查询语句、使用SQL语句插入元组,使用SQL语句删除元组,使用SQL语句创建索引和删除索引,但任然不是很熟练,有很多地方需要查阅书籍才能完成,还是需要多加练习。

相关主题