当前位置:文档之家› 数据库实验4_数据库查询与视图

数据库实验4_数据库查询与视图

在学生选课数据库中完成规定查询,并创建视图。

1.查询线性代数不及格的同学的学号和姓名;
SQL语句为:SELECT名单$.学号,姓名
FROM名单$,学生选课信息和成绩$,课程$
WHERE名单$.学号=学生选课信息和成绩$.学号AND课程$.课号=学生选课信息和成绩$.课号AND
课程$.课程名='线性代数'
AND学生选课信息和成绩$.成绩<60;
执行后结果为:
2.查询没有选课记录的同学的所有基本信息;
SQL语句为:SELECT*
FROM名单$
WHERE NOTEXISTS
(SELECT*
FROM学生选课信息和成绩$
WHERE学号=名单$.学号);
执行后结果为:
3.查询具有简介先修课的课程信息及对应的先修课名;SQL语句为:SELECTFIRST.课号,SECOND.课程名FROM课程$FIRST,课程$SECOND
WHEREFIRST.先修课号=SECOND.课号;
执行后结果如下:
4.统计高等数学(1)的平均成绩;
SQL语句为:SELECT AVG(成绩)
FROM学生选课信息和成绩$,课程$
WHERE学生选课信息和成绩$.课号=课程$.课号AND课程$.课程名='高等数学(1)'; 执行后结果如下:
5.统计各门课的选课人数;
SQL语句为:SELECT课号,COUNT(学号)
FROM学生选课信息和成绩$
GROUPBY课号;
执行后结果为:
6.查询选修5门课以上的学生的学号;SQL语句为:SELECT学号
FROM学生选课信息和成绩$
GROUPBY学号
HAVING COUNT(*)>5;
执行后结果为:
7.用你的学号查询和你一个班的同学的学号和姓名;
SQL语句为:SELECT学号,姓名
FROM名单$
WHERE班级IN
(SELECT班级
FROM名单$
WHERE学号='201000800145');
执行后结果如下:
8.查询高等数学(1)成绩比你高出10分以上的同学的姓名和对应成绩;SQL语句为:SELECT姓名,成绩
FROM名单$,学生选课信息和成绩$
WHERE名单$.学号=学生选课信息和成绩$.学号AND学生选课信息和成绩$.课号='82006010'
AND成绩>(
SELECT成绩+10
FROM学生选课信息和成绩$,课程$
WHERE学生选课信息和成绩$.课号=课程$.课号AND课程$.课程名='高等数学(1)' AND学生选课信息和成绩$.学号='201000800145')
执行后结果为:
9.找到每门课获得最高成绩的同学的学号、姓名、课名和成绩;选做。

只能做到如下结果
SQL语句为:SELECT课号,姓名,成绩
FROM名单$,学生选课信息和成绩$SCX
WHERE名单$.学号=SCX.学号AND SCX.成绩IN
(SELECT MAX(成绩)
FROM学生选课信息和成绩$SCY
WHERE SCX.课号=SCY.课号
GROUPBY课号)
执行后结果为:
10.创建计算机系一班同学的视图V_CS_Stu,并指定可以更新;SQL语句为:CREATEVIEW V_CS_Stu
AS
SELECT*
FROM名单$
WHERE系别='计算机'AND班级='1'
WITHCHECKOPTION;
执行后结果如下:
11.基于V_CS_Stu,创建计算机系一班同学的选课视图,包括学号、姓名、课程名;SQL语句为:CREATEVIEW V_CS_Stu_SC
AS
SELECT dbo.V_CS_Stu.学号,dbo.V_CS_Stu.姓名,dbo.课程$.课程名
FROM名单$,课程$
CROSSJOIN dbo.V_CS_Stu
执行后结果为:
12. 用V_CS_Stu查询计算机系一班同学中名字包含“权”字的同学
SQL语句为:SELECT*
FROM V_CS_Stu
WHERE姓名LIKE'%权'OR姓名LIKE'权%'
执行后结果如下:
13. 用V_CS_Stu更新学号以2010008001打头计算机系一班同学的出生日期为1994-5-2;SQL语句为:UPDATE V_CS_Stu
SET生日=1994-5-2
WHERE学号>'201000800099'AND学号<'201000800200'
执行后结果如图所示:
14. 创建学号及他所有课的平均成绩的视图;
SQL语句为:
CREATEVIEW S_G(学号,平均成绩)
AS
SELECT学号,AVG(成绩)
FROM学生选课信息和成绩$
GROUPBY学号;
执行后结果为:
15. 创建所有女同学的视图,只包含姓名、年龄、班级及系别;SQL语句为:CREATEVIEW GIRL
AS
SELECT姓名,生日,班级,系别
FROM名单$
WHERE性别='女';
执行后结果为:
16. 删除14中所创建的视图。

SQL语句为:DROPVIEW S_G; 执行后结果为:。

相关主题