网站大量收购独家精品文档,联系QQ:2885784924

MySQL开发和 与实践 第7章 视图.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL开发和 与实践 第7章 视图.ppt

;;7.1 视图概述;7.1.1 视图的概念; 对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。下面将视图的作用归纳为如下几点: 1.简单性 看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。 2.安全性 视图的安全性可以防止未授权用户查看特定的行或列,权限用户只能看到表中特定行的方法如下: (1)在表中增加一个标志用户名的列; (2)建立视图,是用户只能看到标有自己用户名的行; (3)把视图授权给其他用户。; 创建视图需要具有CREATE VIEW的权限。同时应该具有查询涉及的列的SELECT权限。可以使用SELECT语句来查询这些权限信息,查询语法如下: SELECT Selete_priv,Create_view_priv FROM mysql.user WHERE user=用户名; Selete_priv属性表示用户是否具有SELECT权限,Y表示拥有SELECT权限,N表示没有; Create_view_priv属性表示用户是否具有CREATE VIEW权限;mysql.user表示MySQL数据库下面的user表; “用户名”参数表示要查询是否拥有DROP权限的用户,该参数需要用单引号引起来。;【例7-1】 下面查询MySQL中root用户是否具有创建视图的权限,代码如下: SELECT Selete_priv,Create_view_priv FROM mysql.user WHERE user=root; 执行结果如图7-1所示。 图7-1 查看用户是否具有创建视图的权限 结果中“Select_priv”和“Create_view_priv”属性的值都为Y,这表示root用户具有SELECT和CREATE VIEW权限。;;【例7-2】 在tb_book数据表中创建view1视图,视图命名为book_view1,并设置视图属性分别为a_sort、a_talk、a_books,代码如下: CREATE VIEW book_view1(a_sort,a_talk,a_books) AS SELECT sort,talk,books FROM tb_book; 执行结果如图7-2所示。 图7-2 创建视图book_view1 如果要在tb_book表和tb_user表上创建名为book_view1的视图,执行代码如下: CREATE ALGORITHM=MERGE VIEW book_view1(a_sort,a_talk,a_books,a_name) AS SELECT sort,talk,books,tb_user.name FROM tb_book,tb_name WHERE tb_book.id=tb_name.id WITH LOCAL CHECK OPTION; 建议读者自己上机实践一下,这样会加深记忆。;创建视图时需要注意以下几点: (1)运行创建视图的语句需要用户具有创建视图(create view)的权限,若加了[or replace]时,还需要用户具有删除视图(drop view)的权限; (2)select语句不能包含from子句中的子查询; (3)select语句不能引用系统或用户变量; (4)select语句不能引用预处理语句参数; (5)在存储子程序内,定义不能引用子程序参数或局部变量; (6)在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用check table语句; (7)在定义中不能引用temporary表,不能创建temporary视图; (8)在视图定义中命名的表必须已存在; (9)不能将触发程序与视图关联在一起; (10)在视图定义中允许使用order by,但是,如果从特定视图进行了选择,而该视图使用了具有自己order by的语句,它将被忽略。;7.3 视图操作; 查看视图是指查看数据库中已存在的视图。查看视图必须要有SHOW VIEW的权限。查看视图的方法主要包括DESCRIBE语句、SHOW TABLE STATUS语句、SHOW CREATE VIEW语句等。本节将主要介绍这几种查看视图的方法。 1.DESCRIBE语句 DESCRIBE可以缩写成DESC,DESC语句的格式如下: DESCRIBE 视图名; 下面使用DESC语句查询book_view1视图中的结构,结果如图7-3所示。 图7-3 使用D

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档