mysql 视图

一, 视图的概念

    视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。基表:用来创建视图的表叫做基表base table

    视图相对于普通的表的优势主要包括以下几项

    1)简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。

    2)安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。

    3)数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。

二,视图操作

   01,创建或者修改视图

       创建视图需要有create view的权限, 并且对于查询涉及的列有select权限. 如果使用create or replace 或者 alter 修改视图

,那么需要该试图drop权限

        创建视图语法

CREATE OR REPLACE|ALGORITHM={UNDEFINED | MERGE | TEMPTABLE}]
	VIEW view_name [(colum_list)]
	AS select_statement
	[WITH [CASCADED | LOCAL ] CHECK OPTION ]

        修改视图语法 

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
	VIEW view_name [(colum_list)]
	AS select_statement
	WITH [CASCADED | LOCAL | CHECK OPTION]	

        操作实例 

库提前创建好

CREATE OR REPLACE VIEW staff_list_vie AS
SELECT s.staff_id,s.first_name,s.last_name,a.adress
FROM staff AS s,address AS a
WHERE s,address_id = a.address_id

 

posted on 2018-11-15 12:16  kingle-l  阅读(187)  评论(0编辑  收藏  举报

levels of contents