面北意林科敏大学 信息、工程学院 第4章中级SQL
第4章 中级SQL
第4章 中级SQL 4.1连接表达式 4.2视图 4.3事务 4.4完整性约束 4.5SQL的数据类型与模式 4.6授权
第4章 中级SQL 4.1 连接表达式 4.2 视图 4.3 事务 4.4 完整性约束 4.5 SQL的数据类型与模式 4.6 授权
4.2视图 视图的概念 ■视图是从一个或几个基本表(或视图)导出的表, 它与基本表不同,是一个虚表 ■数据库中只存放视图的定义,而不存放视图对应 的数据,这些数据仍存放在原来的基本表中,不 会出现数据冗余 ■基表中的数据发生变化,从视图中查询出的数据 也随之改变
4.2 视 图 视图的概念 ◼ 视图是从一个或几个基本表(或视图)导出的表, 它与基本表不同,是一个虚表 ◼ 数据库中只存放视图的定义,而不存放视图对应 的数据,这些数据仍存放在原来的基本表中,不 会出现数据冗余 ◼ 基表中的数据发生变化,从视图中查询出的数据 也随之改变
4.2视图 4.2.1定义视图 4.2.2 查询视图 4.2.3 更新视图 4.2.4视图的作用
4.2 视 图 4.2.1 定义视图 4.2.2 查询视图 4.2.3 更新视图 4.2.4 视图的作用
1.建立视图 ■语句格式 CREATE VIEW[([,]..)] AS〈子查询> [WITH CHECK OPTION] ■DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字 典,并不执行其中的SELECT语句。 在对视图查询时,按视图的定义从基本表中将数据查出。 ■With Check Option表示对视图进行Update、Insert和 Delete操作时要保证更新、插入或删除的行满足视图定义 中的谓词条件(即子查询中的条件表达式)
1. 建立视图 ◼ 语句格式 CREATE VIEW [( [,]…)] AS [WITH CHECK OPTION]; ◼ DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字 典,并不执行其中的SELECT语句。 ◼ 在对视图查询时,按视图的定义从基本表中将数据查出。 ◼ With Check Option表示对视图进行Update、Insert和 Delete操作时要保证更新、插入或删除的行满足视图定义 中的谓词条件(即子查询中的条件表达式)
常见的视图类型 ·行列子集视图 ·WITH CHECK OPTION的视图 ·基于多个基表的视图 ·基于视图的视图 ·带表达式的视图 ·分组视图
常见的视图类型 ◼ 行列子集视图 ◼ WITH CHECK OPTION的视图 ◼ 基于多个基表的视图 ◼ 基于视图的视图 ◼ 带表达式的视图 ◼ 分组视图
行列子集视图 [例1们 建立植保学院学生的视图,视图中包括 学号、姓名、年龄、学院属性。 CREATE VIEW ZB S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE :Sdept‘植保'; ■从单个基本表导出 ·只是去掉了基本表的某些行和某些列 ·保留了码
行列子集视图 [例1] 建立植保学院学生的视图,视图中包括 学号、姓名、年龄、学院属性。 CREATE VIEW ZB_S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE Sdept= ‘植保' ; ◼ 从单个基本表导出 ◼ 只是去掉了基本表的某些行和某些列 ◼ 保留了码
WITH CHECK OPTIONE的视图 [例2]建立信息学院学生的视图,并要求透过该视图进 行的更新操作只涉及信息学院学生。 CREATE VIEW XX S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE Sdept=信息' WITH CHECK OPTION;
WITH CHECK OPTION的视图 [例2] 建立信息学院学生的视图,并要求透过该视图进 行的更新操作只涉及信息学院学生。 CREATE VIEW XX_S AS SELECT Sno,Sname,Sage,Sdept FROM S WHERE Sdept= ‘信息' WITH CHECK OPTION;
对XXS视图的更新操作 修改操作:系统自动检查用户所修改的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许修改,不是 则不允许修改。 删除操作:系统自动检查用户所删除的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许删除,不是 则不允许删除。 ■插入操作:DBMS自动检查Sdept.属性值是否为‘信息', 如果不是,则拒绝该插入操作
对XX_S视图的更新操作 ◼ 修改操作:系统自动检查用户所修改的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许修改,不是 则不允许修改。 ◼ 删除操作:系统自动检查用户所删除的是否是视图中的数 据,即是否是信息学院的学生信息。是则允许删除,不是 则不允许删除。 ◼ 插入操作:DBMS自动检查Sdept属性值是否为‘信息’ , 如果不是,则拒绝该插入操作
基于多个基本表的视图 [例3] 建立水建学院选修了001号课程的学生视图。 CREATE VIEW SJ SC(Sno,Sname,Grade) AS SELECT S.Sno,Sname,Grade FROM S,SC WHERE Sdept=‘水建'AND S.Sno=SC.Sno AND Sc.Cno='001';
基于多个基本表的视图 [例3] 建立水建学院选修了001号课程的学生视图。 CREATE VIEW SJ_SC(Sno,Sname,Grade) AS SELECT S.Sno,Sname,Grade FROM S,SC WHERE Sdept= ‘水建' AND S.Sno=SC.Sno AND SC.Cno= '001';