MySQL ●000 第三章 MySQL查询和视图 主讲内容:SQL查询、视图 MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第2页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 2 页 第三章 MySQL查询和视图 主讲内容:SQL查询、视图
0本节课教学内容 MySQL 1.管理 MySQL视图 创建视图 查询视图 更新视图 修改视图 删除视图 MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第3页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 3 页 本节课教学内容 1. 管理MySQL视图 – 创建视图 – 查询视图 – 更新视图 – 修改视图 – 删除视图
0。5.管理MySQ视图 MySQL 视图(VieW)是查看数据库中数据的一种方式,是从 个或多个表(视图)导出的表,是一个虚表 ·视图只存放视图的定义,不存放视图对应的数据。 对视图的数据进行操作时,系统根据视图的定义去操作 与视图相关联的基本表。基本表中的数据发生变化,从 视图中查询出的数据也随之改变。 MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第4页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 4 页 5. 管理MySQL视图 • 视图(View)是查看数据库中数据的一种方式,是从一 个或多个表(视图)导出的表,是一个虚表。 • 视图只存放视图的定义,不存放视图对应的数据。 • 对视图的数据进行操作时,系统根据视图的定义去操作 与视图相关联的基本表。基本表中的数据发生变化,从 视图中查询出的数据也随之改变
5.管理 MySQL视图 MySQL ●000 视图定义以后,可以像数据表一样被查询、修改、删除和 更新 视图优点 ①为用户集中数据,简化数据查询和处理; ②屏蔽数据库的复杂性 ③简化用户权限的管理; ④便于数据共享 ⑤可以重新组织数据以便输出到其它应用程序中。 MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第5页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 5 页 5. 管理MySQL视图 • 视图定义以后,可以像数据表一样被查询、修改、删除和 更新。 • 视图优点: ① 为用户集中数据,简化数据查询和处理; ② 屏蔽数据库的复杂性; ③ 简化用户权限的管理; ④ 便于数据共享; ⑤ 可以重新组织数据以便输出到其它应用程序中
5.管理 MySQL视图 MySQL ●000 基于视图的操作: 创建视图 一查询视图 更新视图 修改视图 删除视图 MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第6页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 6 页 5. 管理MySQL视图 • 基于视图的操作: – 创建视图 – 查询视图 – 更新视图 – 修改视图 – 删除视图
0051创建视图 MySQL 能够替换已有的同名视图 语法格式 CREATE[ OR REPLACE]VEW视图名【列名.) AS Loca表示更新视图时满足 该视图本身定义的条件即 select语句 可。 [WITH [CASCADED LOCAL] CHECK OPTION] cascaded是默认选项,表 示更新视图时要满足所有 在更新视图时,要保证在视图的 相关视图和表的条件。 权限范围内。 MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第7页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 7 页 5.1 创建视图 • 语法格式: CREATE [OR REPLACE] VIEW 视图名 [(列名… )] AS select 语句 [WITH [CASCADED |LOCAL] CHECK OPTION] cascaded是默认选项,表 示更新视图时要满足所有 相关视图和表的条件。 在更新视图时,要保证在视图的 权限范围内。 能够替换已有的同名视图 Local表示更新视图时满足 该视图本身定义的条件即 可
0051创建视图 MySQL select语句”有以下限制: 定义视图的用户必须对所参照的表或视图有查询权限,即 可执行 select语句; 不能包含from子句中的子查询 在定义中引用的表或视图必须存在; 若引用的表或视图不在当前数据库应加上数据库名称; 在视图定义中允许使用 order by,但是如果从特定视图进 行了选择,而该视图使用了具有自己 order by的语句,则 视图定义中的 order by将被忽略; 对于 select语句中的其他选项或子句,若视图中也包含了 这些选项,则效果未定义 MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第8页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 8 页 5.1 创建视图 • “select 语句” 有以下限制: – 定义视图的用户必须对所参照的表或视图有查询权限,即 可执行select语句; – 不能包含from子句中的子查询; – 在定义中引用的表或视图必须存在; – 若引用的表或视图不在当前数据库应加上数据库名称; – 在视图定义中允许使用order by ,但是如果从特定视图进 行了选择,而该视图使用了具有自己order by 的语句,则 视图定义中的order by 将被忽略; – 对于select语句中的其他选项或子句,若视图中也包含了 这些选项,则效果未定义
在对sq视图进行更新操作时: 口修改操作:自动加上专业名=计算机的条件 口删除操作:自动加上专业名=计算机的条件 口插入操作:自动检查专业名属性值是否为算机 如果不是,则拒绝该插入操作 如果没有提供专业名属性值,则自动定义专业名为计算机'。 cate viev as select学号姓名,专业名 from xs Where专业名=“计算机 with check option MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第9页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 9 页 5.1 创建视图 • 案例1:在当前数据库xscj中创建计算机专业学生的视图,包 括学号、姓名和专业名。 create view jsj_cj as select 学号,姓名, 专业名 from xs where 专业名= ‘计算机’ with check option; n 在对jsj_cj视图进行更新操作时: ¨ 修改操作:自动加上专业名=‘计算机’的条件 ¨ 删除操作:自动加上专业名=‘计算机’的条件 ¨ 插入操作:自动检查专业名属性值是否为'计算机' n 如果不是,则拒绝该插入操作; n 如果没有提供专业名属性值,则自动定义专业名为‘计算机’
0051创建视图 MySQL 案例2:在当前数据库XsCj中创建计算机专业学生的视图,包 括学号、姓名和成绩 create view Js]_cJ as selectⅹs学号姓名,成绩 from xs xs kc Where专业名=‘计算机′ and xs学号=Xskc学号 with check option MySQL数据库应用》http:/mysq!xg.hactcm.edu.cn 第10页
《MySQL数据库应用》 http://mysql.xg.hactcm.edu.cn/ 第 10 页 5.1 创建视图 • 案例2:在当前数据库xscj中创建计算机专业学生的视图,包 括学号、姓名和成绩。 create view jsj_cj as select xs.学号,姓名, 成绩 from xs,xs_kc where 专业名= ‘计算机’ and xs.学号=xs_kc.学号 with check option;