2023年6月21日发(作者:)
实验报告言SQL
2-关系数据库标准语 实验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
Sno '学号',
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 '学号',
Cno '课程号'
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
,
FROM Student,Student_course,Course
WHERE = Student_
and = Student_
and = '高等数学' and Student_ > 80;
--13
SELECT
,
FROM Course FIRST,Course SECOND
WHERE = ;
--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_
FROM Student,Student_course,Course
WHERE = Student_
and Student_ = ;
--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语句创建索引和删除索引,但任然不是很熟练,有很多地方需要查阅书籍才能完成,还是需要多加练习。
2023年6月21日发(作者:)
实验报告言SQL
2-关系数据库标准语 实验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
Sno '学号',
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 '学号',
Cno '课程号'
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
,
FROM Student,Student_course,Course
WHERE = Student_
and = Student_
and = '高等数学' and Student_ > 80;
--13
SELECT
,
FROM Course FIRST,Course SECOND
WHERE = ;
--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_
FROM Student,Student_course,Course
WHERE = Student_
and Student_ = ;
--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语句创建索引和删除索引,但任然不是很熟练,有很多地方需要查阅书籍才能完成,还是需要多加练习。
发布评论