MySQL视图(增删改查)

创建视图

视图作用
简化数据查询和处理:视图可以为用户集中多个表中的数据,使用户可以将注意力集中在他们关心的数据上,简化用户对数据的查询和处理;
●屏蔽数据库的复杂性:数据库表的更改不影响用户对数据库的使用,用户也不必了解复杂的数据库中的表结构。例如,那些定义了若干张表连接的视图,就将表与表之间的连接操作对用户隐蔽起来;
安全性:如果想要使用户只能查询或修改用户有权限访问的数据,也可以只授予用户访问视图的权限,而不授予访问表的权限,这样就提高了数据库的安全性。

create:表示创建新的视图;or replace:表示如果该 视图已经存在,则用新视图代替它,若视图不存在则创建新视图;
MySQL视图(增删改查)_第1张图片
视图的创建分为三种情况:在单表中创建视图,在多表中创建视图,在已有视图中创建新的视图

MySQL视图(增删改查)_第2张图片

  • 视图是从一个或者多个表、或其他视图中通过select 语句导出的虚拟表;
  • 数据库中只存放了视图的定义,并没有存放视图中的数据;
  • 浏览视图时产生的数据均来自定义视图查询所引|用 的基表,并且在引用视图时动态生成;
  • 通过视图可以实现对基表数据的查询或修改

with check option:

在视图有WITH CHECK OPTION 的情况下: 对视图进行UPDATE修改时,修改的数据会受到原来定义视图时WHERE的条件的影响。
对于delete,有无with check option都一样;
对于insert,有with check
option,要保证insert后,数据要被视图查询出来; 对于没有where 子句的视图,使用with check option是多余的。

with check option的详细解释

查看视图

查看视图:查看数据库中已存在的视图的定义。可以查看视图的基本信息、详细信息;
1、查看视图基本信息的方法: describe语句(简写为desc)、 show table status语句;
2、查看视图详细信息的方法: show create view语句。

修改视图

MySQL中通过create or replace view语句和alter语句来修改视图。
MySQL视图(增删改查)_第3张图片

更新视图

( 1)使用insert(update也适用)语句在视图中插入一条数据;
语法:

insert [into] view_ name [(col_name…)]values ( )

可以看出,其语法与向表中插入数据相同。

结论:
1、视图若只依赖于一个基表,则可以直接通过视图来更新基本表数据;
2、视图若依赖于多张基表,则一次只能修改一个基表的数据,不能同时修改多个基表的数据。

删除视图

使用delete语句删除视图一条数据;
语法:

delete from view_ name [where子句]

视图数据更新:
注意:当视图中包含如下内容时,视图更新操作将不会被执行:
1、视图中不包含基本表中被定义为非空的列;
2、在定义视图的select语句后的字段列表中使用了数学表达式;
3、在定义视图的select语句后的字段列表中使用了聚合函数;
4、在定义视图的select语句引用不可更新视图(一个不可更新的视图中建立的新的视图);
5、在定义视图的select语句中使用了distinct、union、top、 group by、having字句。

你可能感兴趣的:(MySQL基础,MySQL,mysql,数据库)