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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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岁以上的学生记录。

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

相关文档
最新文档