From 324441279da88fade54328563c416246c1e5eecd Mon Sep 17 00:00:00 2001 From: msksbr Date: Wed, 6 Nov 2024 00:21:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E5=8D=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.MD | 2 ++ 实验十.sql | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 实验十.sql diff --git a/README.MD b/README.MD index 2f2165c..8005f56 100644 --- a/README.MD +++ b/README.MD @@ -16,6 +16,8 @@ - [实验六](实验六.sql) - [实验七](实验七.sql) - [实验八](实验八.sql) +- [实验九](实验九.sql) +- [实验十](实验十.sql) ## BB空间📺 diff --git a/实验十.sql b/实验十.sql new file mode 100644 index 0000000..0237f41 --- /dev/null +++ b/实验十.sql @@ -0,0 +1,49 @@ +-- 1.参照实验五中完成的查询,按如下要求设计和建立视图: +-- (1)基于单个表按投影操作定义视图:创建“教师_view”视图 +CREATE VIEW 教师_view AS +SELECT 教师编号,姓名 FROM 教师表; + +-- (2)基于单个表按选择操作定义视图:创建“教师_view_newa”视图 +CREATE VIEW 教师_view_newa AS +SELECT * FROM 教师表 +WHERE 性别 = '男'; + +-- (3)基于单个表按选择和投影操作定义视图:创建“学生_view1”视图 +CREATE VIEW 学生_view1 AS +SELECT 学号,姓名 FROM 学生表 +WHERE 平均成绩 > 85; + +-- (4)基于多个表根据连接操作定义视图:创建“学生视图”视图 +CREATE VIEW 学生视图 AS +SELECT 学生表.*,选课表.课程编号 FROM 学生表 +JOIN 选课表 ON 学生表.学号=选课表.学号; + +-- (5)基于多个表根据嵌套操作定义视图: +CREATE VIEW 嵌套操作 AS +SELECT * FROM 教师表 +WHERE 工资= ANY( +SELECT 工资 FROM 教师表 +WHERE 工资>4500 +); + +-- 2.分别在定义的视图设计3种查询(包括基于视图和基本表的一般、连接和嵌套查询) +-- (1)基于教师_view的一般查询 +SELECT * FROM 教师_view; + +-- (2)基于学生视图的连接查询 +SELECT 学生视图.*,选课表.成绩 FROM 学生视图 +JOIN 选课表 ON 学生视图.学号=选课表.学号; + +-- (3)基于new_view的嵌套查询 + +-- 3.在定义的视图上分别进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。 +-- (1)插入操作 +INSERT INTO 学生视图(姓名, 学号, 性别, 院系编号, 平均成绩) VALUES ('剑十一', 31, '男', 1, 110); + +-- (2)更新操作 +UPDATE 学生视图 SET 院系编号 = 3 +WHERE 学号 = 6; + +-- (3)删除操作 +DELETE FROM 学生视图 +WHERE 学号 = 31;