SQL Server---实验4---视图

文章目录

  • 实验内容
  • 1)使用SQL语句在给定的xsgl数据库中创建视图S_view,包括学号、姓名、专业、课程号、课程名、成绩。
  • 2)使用SQL语句对视图S_view进行查询。
  • 3)使用SQL语句对视图S_view进行查询:要求查询“计算机应用”专业的学生的学号、姓名、课程名,成绩。
  • 4)在xsgl数据库中创建一个以S表为基表、专业为“电子工程”的视图S_cp,并且向该视图中插入一条记录(’141003’,’张进’,’男’,20,’电子工程’),。然后对基本表S的数据进行查看,是否同步更新?
  • 5)使用update语句将张进同学的专业改为“计算机科学”。
  • 6)使用命令修改视图S_cp名称为S1_cp,并查看。
  • 7)在xsgl数据库中创建一个以SC和S表为基表的视图SC_pj,要求该视图能统计平均成绩高于80分的学生的学号、姓名、平均成绩,并进行查看。如果对该视图执行插入操作(’143001’,’章一’,65),查看基本表数据是否同步更新?
  • 8)删除视图SC_pj,并查看是否删除成功。

实验内容

已知学生信息管理数据库xsgl,包含3个关系模式,学生表S,课程表C和选课表SC,每个表的字段和具体数据如下图所示,使用SQL语句完成以下题目。
SQL Server---实验4---视图_第1张图片

1)使用SQL语句在给定的xsgl数据库中创建视图S_view,包括学号、姓名、专业、课程号、课程名、成绩。

CREATE VIEW S_view AS
SELECT S.Sno, Sname, Speciality, SC.Cno, Cname, Grade
FROM S
JOIN SC
ON S.Sno = SC.Sno
JOIN C
ON SC.Cno = C.Cno

2)使用SQL语句对视图S_view进行查询。

SELECT * FROM S_view

3)使用SQL语句对视图S_view进行查询:要求查询“计算机应用”专业的学生的学号、姓名、课程名,成绩。

SELECT Sno, Sname, Cname, Grade
FROM S_view
WHERE Speciality='计算机应用'

4)在xsgl数据库中创建一个以S表为基表、专业为“电子工程”的视图S_cp,并且向该视图中插入一条记录(’141003’,’张进’,’男’,20,’电子工程’),。然后对基本表S的数据进行查看,是否同步更新?

CREATE VIEW S_cp AS
SELECT *
FROM S
WHERE Speciality='电子工程'

INSERT INTO S_cp (Sno, Sname, Sex, Age, Speciality)
VALUES ('141003','张进','男',20,'电子工程')

SELECT * FROM S

5)使用update语句将张进同学的专业改为“计算机科学”。

UPDATE S_cp
SET Speciality='计算机科学'
WHERE Sname='张进'

6)使用命令修改视图S_cp名称为S1_cp,并查看。

EXEC sp_rename S_cp, S1_cp

7)在xsgl数据库中创建一个以SC和S表为基表的视图SC_pj,要求该视图能统计平均成绩高于80分的学生的学号、姓名、平均成绩,并进行查看。如果对该视图执行插入操作(’143001’,’章一’,65),查看基本表数据是否同步更新?

USE xsgl
GO
CREATE VIEW SC_pj AS
SELECT S.Sno, Sname, AVG(Grade) 平均成绩
FROM S
JOIN SC
ON S.Sno=SC.Sno
GROUP BY S.Sno, Sname
HAVING avg(Grade)>80

8)删除视图SC_pj,并查看是否删除成功。

DROP VIEW SC_pj

你可能感兴趣的:(SQL,Server,数据库,sql,mysql)