当前位置:   article > 正文

my sql实验视图_SQL Sever实验三 视图与数据更新

将各门课程的选修人数及平均成绩定义为视图

一. 实验目的

1.掌握创建视图的 SQL 语句,数据更新的 SQL 语句。

2.了解使用创建视图向导创建视图的方法。

3.掌握使用 SQL 创建视图的方法,使用 SQL 更新数据的方法。

二. 实验准备

1.了解创建视图与数据更新的方法。

2.掌握创建视图与数据更新的 SQL 语句的语法格式。

3.了解删除视图与数据更新的 SQL 语句的用法。

三. 实验要求

1. 用不同的方法创建视图,练习数据更新。

2. 提交实验报告,并验收实验结果。

四. 实验内容

1)定义计算机系学生基本情况视图 V_Computer;

USE stsc

GO

CREATE VIEW V_Computer

AS

SELECT *

FROM Student

2)将 student, course 表和 score 表中学生的学号,姓名,课程号,课程名,成绩定义为视图 V_S_C_G;

USE stsc

GO

CREATE VIEW V_S_C_G

AS

SELECT Student.stno, Student.stname, Course.cname ,Score.grade

FROM Student,Score,Course

3)将各系学生人数,平均年龄定义为视图 V_NUM_AVG;

USE stsc

GO

CREATE VIEW V_NUM_AVG("系名","平均人数", "平均年龄")

AS

SELECT speciality, COUNT(*), AVG(year(getdate())-year(stbrithday))

FROM Student

GROUP BY speciality

4)定义一个反映学生出生年份的视图 V_YEAR;

USE stsc

GO

CREATE VIEW V_Year("出生日期")

AS

SELECT stbrithday

FROM Student

5)将各位学生选修课程的门数及平均成绩定义为视图 V_AVG_S_G;

USE stsc

GO

CREATE VIEW V_AVG_S_G("学号", "选修门数", "平均成绩")

AS

SELECT Student.stno, COUNT(*), AVG(Score.grade)

FROM Student, Score

WHERE Score.stno = Student.stno

GROUP BY Student.stno

6)将各门课程的选修人数及平均成绩定义为视图 V_AVG_C_G。

USE stsc

GO

CREATE VIEW V_AVG_C_G("课程号", "平均成绩")

AS

SELECT Course.cno, AVG(Score.grade)

FROM Course, Score

WHERE Score.cno = Course.cno

GROUP BY Course.cno

2.查询视图

1)通过查询 V_AVG_S_G 视图得到平均成绩为 90 分以上的学生的学号和成绩;

USE stsc

SELECT *

FROM V_AVG_S_G

WHERE "平均成绩" >= 90

2)通过查询 V_NUM_AVG 视图得到人数超过 10 人,且平均年龄在 18 岁以上的院系;

USE stsc

SELECT *

FROM V_NUM_AVG

WHERE "平均年龄" >= 18 AND "平均人数" >= 10

3.删除视图

使用 SQL 语句删除视图 V_YEAR。

USE stsc

DROP VIEW V_Year

4.数据更新

(1)将一个新学生记录(学号:XX(根据自己定义的学号修改);姓名:陈冬;性别: 男;所在系:XX(根据自己定义的系名修改);年龄:18)插入 student 表中;

USE stsc

INSERT INTO Student values

('122009', '陈冬', '男', '1992-11-23', '计算机', 50)

(2)插入一条选课记录:学号为 200215126 的学生选修了 1 号课程;

USE stsc

INSERT INTO Score values

('200215126 ', '102', NULL)

(3)将学生 XX(根据自己定义的学号修改)所在系改为其他系别(例如:数学系, 具体地,根据自己定义的系名修改);

USE stsc

UPDATE Student SET speciality = '通信'

WHERE stno = '121002'

(4)删除学号为 XX 的学生记录;

USE stsc

DELETE FROM Student

WHERE stno = '121002'

(5)删除 XX 系(根据自己定义的系名修改)所有学生。

USE stsc

DELETE FROM Student

WHERE Student.speciality = '通信'

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/561135
推荐阅读
相关标签
  

闽ICP备14008679号