已知一个数据库有学生表,课程表,选修表,创建软件学院的学生视图(SW_S)要求:视图进行插入、修改和删除操作时, 必须加上定义视图的条件
时间: 2024-06-01 17:10:58 浏览: 111
CREATE VIEW SW_S AS
SELECT s.student_id, s.student_name, s.student_gender, c.course_name, x.score
FROM student s, course c, xuanxiu x
WHERE s.student_id = x.student_id AND c.course_id = x.course_id AND c.course_type = 'software';
-- 插入操作
INSERT INTO SW_S(student_id, student_name, student_gender, course_name, score)
VALUES ('20210001', '张三', '男', '软件工程导论', 90);
-- 修改操作
UPDATE SW_S
SET score = 80
WHERE student_id = '20210001' AND course_name = '软件工程导论';
-- 删除操作
DELETE FROM SW_S
WHERE student_id = '20210001' AND course_name = '软件工程导论';
在进行插入、修改和删除操作时,需要同时满足视图中定义的条件,即只能对软件学院的学生进行操作。
相关问题
已知一个数据库有学生表,课程表,选修表,创建软件学院的学生视图(SW_S)
CREATE VIEW SW_S AS
SELECT s.s_id, s.s_name, s.s_age, s.s_gender, s.s_major, c.c_name, c.c_teacher
FROM student AS s
INNER JOIN elective AS e ON s.s_id = e.s_id
INNER JOIN course AS c ON e.c_id = c.c_id
WHERE s.s_major = '软件学院';
R10-10 创建视图图统计没有选课的学生信息 分数 5 现有一个学生数据库,内包含学生表(Student)、课程表(Course)和选修表(SC)。 每学期的某段时间,学校教务处将下达学生学籍清理的任务。假设学籍清理的一类对象是没有选课的学生,请设计一个视图V_StudentsWithoutCourse,用于统计没有选课记录的学生信息。 提示:请使用CREATE VIEW语句作答,并请注意数据表名大小写。 表结构: 学生表(Student)、课程表(Course)和选修表(SC)结构如下:
可以使用以下 SQL 语句创建名为 V_StudentsWithoutCourse 的视图,统计没有选课的学生信息:
```
CREATE VIEW V_StudentsWithoutCourse AS
SELECT Student.*
FROM Student
WHERE Student.Sno NOT IN
(SELECT SC.Sno FROM SC);
```
解释:
该视图的 SELECT 语句使用了子查询,内部查询选修表 SC 中的学生编号,然后外部查询学生表 Student,筛选出学生表中学号不在子查询结果中的记录,即为没有选课的学生信息。
注意,上述 SQL 语句中的表名大小写应与实际表名匹配。
阅读全文