数据库_视图

一、视图介绍

  1. 视图是虚拟表,只保存查询语句,不存储真实数据。数据来自一个或多个基表(物理表),访问视图时才动态查询生成结果

  2. 核心特点

  • 虚表:数据库存的是SELECT定义,不是数据;删除视图不会删基表数据
  • 动态:基表数据变,视图查询结果自动跟着变
  • 使用方式:和普通表一样,可以SELECT;但不是所有视图都支持增删改(多表连接、聚合函数的视图一般不能更新)
  1. 作用
  • 简化查询:把多表 JOIN、复杂聚合封装成视图,用户直接查视图
  • 数据安全:只开放部分字段 / 行,隐藏敏感信息(手机号、薪资),不给基表权限
  • 逻辑独立:底层表结构调整,上层应用可以继续用视图,不用改代码
  1. 视图的优点✅️
  • 提高查询效率:数据库中的数据查询非常复杂,可以简化sql语句
  • 安全:有些保密字段可以通过创建视图限制用户对某些字段进行操作
  • 简单:不需要关心后面对应的表结构
  1. 视图的缺点❌️
  • 性能差:把视图查询的结果转换成对表的查询
  • 修改限制:修改视图数据,必须转换为对基础表的修改
  1. 特点☆
  • 视图是由基础表产生的虚拟表【基础班删除,视图就无效】
  • 视图的创建不影响基础表【创建多个视图,都不影响基础表】
  • 删除视图不影响基础表
  • 视图删除数据,基础表也同时删除数据【合的表无法删除,单表可以删除】
  • 基础表删除数据,视图也删除数据
  • 视图不能修改表字段,不能对表字段删除

二、sql语句

  1. 创建视图:create view 视图名 as(select sql语句)
  2. 查看所有表【物理表中没有视图】:show tables
  3. 查询视图:select * from 视图名
  4. 查看创建好的视图:show create view 视图名
  5. 删除视图:drop view 视图名

三、问题

  1. 什么是视图
    视图是虚拟表,数据库只保存视图对应的查询语句,不存储真实数据。数据来源于基表,查询视图时动态从基表获取数据。

  2. 视图是用来干什么的【作用】

  • 简化复杂查询,封装多表关联逻辑,可重复使用。
  • 数据安全:只开放部分字段 / 行,隐藏敏感信息。
  • 逻辑解耦:底层基表改动,上层业务代码不用修改。
  • 统一数据统计口径,保证多处查询结果标准一致。

一句话总结:视图就是封装好的查询,用来简化查询、控制数据可见范围、统一统计口径。

  1. 视图的优缺点
  • 优点
    • 简化查询:将复杂多表关联 SQL 封装,用户直接查询视图,不用重复编写复杂语句。
    • 数据安全:可以只开放部分字段或部分行,屏蔽敏感数据,实现权限控制。
    • 逻辑独立:底层基表结构发生变化时,上层应用代码无需修改,仅调整视图定义即可。
    • 统一口径:相同统计逻辑多处复用,保证不同业务查询出来的数据标准一致。
  • 缺点
    • 性能隐患:视图不存储真实数据,每次查询都会执行底层 SQL;多层嵌套视图容易导致查询效率低下。
    • 更新受限:只有简单单表视图支持增删改;多表连接、带聚合函数、distinct 的视图不能更新。
    • 排障困难:多层嵌套视图,无法直观看到底层逻辑,出现问题不容易定位。
    • 依赖基表:视图依赖基础表,基表删除或字段变更,视图会失效。

一句话总结:视图简化查询、保护数据;但多层嵌套性能差,更新有较多限制。

  1. 如何创建视图
    create view 视图名 as(sql语句)
  2. 如何删除一个视图
    drop view 视图名
posted @ 2026-09-09 17:22  一只鹿吖  阅读(39)  评论(0)    收藏  举报