MySQL视图

什么是视图

    视图(View)是一种虚拟存在的表。其内容与真实的表相似,包含一系列带有名称的列和行数据。但是视图并不在数据库中以存储的数据的形式存在。行和列的数据来自定义视图时查询所引用的基本表,并且在具体引用视图时动态生成。

视图的特点如下:

<1>视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系;

<2>视图是由基本表(实表)产生的表(虚表);

<3>视图的建立和删除不影响基本表;

<4>对视图内容的更新(增删改)直接影响基本表;

<5>当视图来自多个基本表时,不允许添加和删除数据。

为什么使用视图

1、安全:使用视图用户只能访问到他们有权限访问的数据(具体到每一列),对表的权限管理不能具体到每一列。

2、简单:使用视图不用关心表的结构、关联条件和筛选条件,因为它是动态生成的,在定义视图的时候已经对相关语句进行了定义。

3、数据独立:视图可以屏蔽表结构变化对用户的影响,当表结构变化时,修改视图就好,不用修改业务代码,前提是业务代码查询的是视图,不是对表进行直接查询。

创建或修改视图

create view 视图名 as 查询语句  with  cascaded | local  check option ;

注:with cascaded | local check option可以没有,默认是with cascaded check option

create or replace view user_view as select * from user ;

注:CREATE VIEW代码段创建一个新的视图,或是在使用了OR REPLACE选项时尝试替换一个已经存在的视图。

如果视图view_name不存在,CREATE OR REPLACE VIEW等同于CREATE VIEW,如果存在则等同于ALTER VIEW。

查看视图

SHOW TABLES;

查看视图的定义:

SHOW CREATE VIEW view_name;

删除视图

语句:drop view  if exists 视图名1,视图名2;

drop view my_view3;

修改视图

方式一:先删除再创建,使用语句CREATE OR REPLACE或是分步骤先DROP然后CREATE;

方式二:使用ALTER VIEW: ALTER VIEW view_name as select_statement;

查看视图状态

show view tatus;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容