美文网首页
54 SQL中的视图和触发器

54 SQL中的视图和触发器

作者: 夏威夷的芒果 | 来源:发表于2018-11-28 22:04 被阅读7次

    为什么要有视图

    视图和基本表的关系


    练习

    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中的视图和触发器

          本文链接:https://www.haomeiwen.com/subject/hihaqqtx.html