54 SQL中的视图和触发器

为什么要有视图

视图和基本表的关系


练习

SQL视图

视图的建立和删除


视图插入数据

视图数据的删改


如果视图中存在由表达式生成的属性,因此只能进行有限的数据更新操作,只允许删除操作,不允许插入和修改操作。

视图在数据库中是一个虚表,并不存在,系统只是存储视图的定义。
在对视图中的数据进行修改时,实际上就是修改数据库中基本表中的数据,会对原有数据库的数据造成影响。

练习


两个示例

CREATE VIEW T1(ID, T_Name,Gender,Age,Dept) AS 
SELECT  TeacherID,Name,Gender,Age,Dept 
FROM Teacher 
WHERE Dept = 'CS' 
WITH CHECK OPTION;  
CREATE VIEW T2 (ID,T_Name,Gender,Age,YearofBirth,Dept) AS 
SELECT TeacherID,Name,Gender,Age, 2017-Age,Dept 
FROM Teacher WHERE Dept = 'CS' 
WITH CHECK OPTION;

如要删除视图,需用DROP VIEW 视图名 ,不加VIEW不好使。

DROP VIEW T2

SQL中的触发器

练习


例如:
在 Student 表上定义一个触发器 Year_Change,该触发器的触发条件是表 Time 上有更新数据的操作之后。例如将 thisYear 从 2017 变为 2018,触发后会将学生信息表 Student (ID, Name, Age, Gender, YearofEnroll,Dept) 中的年龄属性 Age,根据年份的变化进行更新,年份的增量就是年龄的增量。

CREATE TRIGGER YEAR_Change AFTER UPDATE ON Time
FOR EACH ROW
UPDATE Student SET Age = Age + NEW.thisYear - OLD.thisYear;

你可能感兴趣的:(54 SQL中的视图和触发器)