什么是视图
视图(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;
网友评论