MySQL学习笔记(八): 视图

一. 视图(VIEW)

视图 是一个虚拟表,是从数据库中一个或者多个表中导出来的表, 不保存任何数据。视图还可以从已经存在的视图的基础上定义.

视图的作用:

  • 对复杂的SQL语句进行封装
  • 对于数据库敏感信息的保护

注意:

  1. 视图时一个虚拟表, 不保存数据
  2. 视图在使用上和正常的数据表一样
  3. 视图不包含数据,所以每次使用视图时,都必须执行查询中所需的任何一个检索操作。如果用多个连接和过滤条件创建了复杂的视图或嵌套了视图,可能会发现系统运行性能下降得十分严重。因此,在部署大量视图应用时,应该进行系统测试。

1. 视图的创建

创建视图的语法格式:

CREATE VIEW 视图名 AS
<select statement>

例如:

CREATE VIEW 视图名
AS
select 字段名1,字段名2,字段名N from 表名

2. 查看视图的基本信息

  1. DESCRIBE 语句查看视图基本信息:

    desc 视图名;
    
  2. SHOW TABLE STATUS 语句查看视图基本信息

    SHOW TABLE STATUS LIKE '视图名';
    
  3. SHOW CREATE VIEW 语句查看视图详细信息:

    SHOW CREATE VIEW 视图名;
    

在MYSQL中,information_schema 数据库下的view表中存储了所有视图的定义。通过对VIEW表的查询,可以查看数据库中所有视图的详细信息。

select * from information_schema.views;

3. 修改视图

修改视图的语法:

ALTER VIEW 视图名
AS
<select statement>

4. 修改视图内容数据

更新视图是指通过插入、更新、删除表中的数据,因为视图是一个虚拟表,其中没有数据。通过视图更新的时候都是转到基本表进行更新的,如果对视图增加或者删除记录,实际上是对其基本表增加或者删除记录.

视图的增删改查命令语法和实体表一致

但是, 并非所有视图都是可以更新的. 基本上可以说, 如果MySQL不能确定被更新的基数据, 则不允许更新. 更具体地讲,如果视图包含以下结构中的任何一种,它就是不可更新的:

  • 聚合函数 SUM()、MIN()、MAX()、COUNT() 等。
  • DISTINCT 关键字。
  • 分组(使用group by 和 having)
  • UNION 或 UNION ALL 运算符。
  • 子查询
  • 联结

因此视图应该主要用来进行数据的检索, 而不是更新

5. 删除视图

删除视图的语法:

DROP VIEW [IF EXISTS]
视图名 [,视图名2]...;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值