MYSQL视图操作

视图

一、 简介

  1. 含义:

是从数据库一个或个多个表中导出的虚拟表

     2.作用:

        (1)、方便用户操作

要求所见即所需,无需添加额外的查询条件,直接查看

       (2)、增加数据的安全性

通过视图,用户只能查看或修改指定的数据。

       (3)、提高表的独立逻辑性

原有数据表结构的变化,不会影响视图,如果修改原有列,则只需修改视图即可。

 

二、创建视图

  1. 语法:

create

[algorithm = {undefined | merge | temptable}] 

view 视图名 [{属性清单}]

as select 语句

[with [cascaded|local] check option];

algorithm:选择的算法

with check option:表示更新视图时要保证在该视图的权限范围之内

undfined:表示MySQL自动选择所需使用的算法

merge:表示将视图的语句与视图的定义合并,使得视图定义的某一部分取代语句的对应部分

temptable:将视图的结果存入临时表

cascaded:表示更新视图时要满足所有相关视图和表的条件

local:表示更新视图时,要满足该视图本身的定义的条件即可

是否有权限创建?

通过SQL查询:

     2.创建视图

2.1、在单表上创建视图

例子:

 

2.2、在多表上创建视图

例子:

 

三、查看视图

  1. desc查看

例子:

      2.show table status

例子:

(employee_view1是虚拟表)

(department实体表)

      3.show create view 视图名

例子:

      4.在views表中查看

例子:

 

四、修改视图

  1. 通过create or replace view修改

(如果没有则创建,有则修改)

例子:

      2.通过alter修改

(只能修改不能创建)

例子:

 

五、更新视图

创建视图:

更新视图:

查看视图(更新后):

(更新视图实际上是更新表)

注意:并非所有的视图都能更新!!!

  1. 视图中包含聚合函数时:

     2.视图中包含union、union all、distinct、group by和having等关键字

      3.常量视图

      4.视图中的select中包含子查询

     6.由不可更新的视图导出的视图

     7.创建视图时,algorithm为temptable类型

    8.视图对应的表上存在没有默认值的列,而且该列没有包含在视图里。

[最好视图仅限于查询,若要更新则要考虑全面,否则会造成更新失败]

 

六、 删除视图

语法:

drop view [if exists] 视图列表

例子:

判断用户是否有删除权限:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值