大数据知识体系
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
  • MySQL

    • MySQL 视图
      • 视图介绍
      • 视图语法
        • 创建视图
        • 查询视图
        • 修改视图
        • 删除视图
      • 视图更新
    • MySQL 存储过程
    • MySQL 触发器
    • MySQL 事务
    • MySQL 存储引擎
    • MySQL 索引
    • MySQL 锁
    • MySQL 日志
    • MySQL 主从复制
    • MySQL 分库分表
    • MySQL 读写分离
    • MySQL 性能分析
    • MySQL SQL执行顺序
    • MySQL 优化
  • Redis

    • Redis 概述
    • Redis 面试题
  • HDFS

    • HDFS 概述
    • HDFS 面试题
  • HBase

    • HBase 概述
    • HBase 面试题
  • ClickHouse

    • ClickHouse 概述
    • ClickHouse 安装
    • ClickHouse 数据类型
    • ClickHouse 引擎
    • ClickHouse 踩坑
  • ElasticSearch

    • ElasticSearch 概述
    • ElasticSearch 面试题
  • 数据存储
  • MySQL
Will
2022-03-05
目录

MySQL 视图

# 视图介绍

视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。视图只保存了查询的 SQL 逻辑,不保存查询结果。

视图的数据是依赖原来表中的数据的,所以原来的表的数据发生了改变,那么显示的视图的数据也会跟着改变,例如向数据表中插入数据,那么在查看视图的时候,会发现视图中也被插入了同样的数据。视图实际上是由预定义的查询形式的表所组成的。

视图的优点:

  • 简单:视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
  • 安全:数据库可以授权,但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们所能见到的数据。
  • 数据独立:视图可帮助用户屏蔽真实表结构变化带来的影响。

# 视图语法

# 创建视图

CREATE [OR REPLACE] VIEW VIEW_NAME[(COL_LIST)] AS SELECT_STATMENT [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
1

如:

create view v_today(today) as select current_date;

create view v_student as select name, age from t_student;
1
2
3

# 查询视图

查看创建视图语句:

SHOW CREATE VIEW VIEW_NAME;
1

查看视图数据:

SELECT * FROM VIEW_NAME;
1

# 修改视图

CREATE [OR REPLACE] VIEW VIEW_NAME[(COL_LIST)] AS SELECT_STATMENT [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

ALTER VIEW VIEW_NAME[(COL_LIST)] AS SELECT_STATMENT [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
1
2
3

# 删除视图

DROP VIEW [IF EXISTS] view_name1 [,view_name2] ...;
1

# 视图更新

要更新视图中的数据,视图中的行必须与基表中的行之间存在一对一的关系,如果视图包含以下任何一项,则视图中的数据不可更新,否则报错。

  • 聚合函数
  • 窗口函数
  • distinct
  • group by
  • having
  • union
上次更新: 2023/11/01, 03:11:44

MySQL 存储过程→

Theme by Vdoing | Copyright © 2022-2023 Will 蜀ICP备2022002285号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式