MySQL——视图
一.什么是视图
视图的本质就是一个虚拟表,基于一个或多个基础表生成,不独立存储数据。可以像操作普通表一样对视图进行管理,视图本身是不占用物理存储空间的。
二.视图的创建
视图创建控制语句:
create view '视图名字'
as select '要查询的列名' from '被视图化表名' where '视图数据条件';
列出所有视图:
show full tables where table_type = 'view';
查看视图定义:
select*from information_schema.views where table_name = 'view_name';
视图的修改:
alter view '视图名' as (查新询语句);
视图的删除:
drop view '视图名';
三.视图不可更新的情况:
1.创建视图时使⽤聚合函数的视图
2.创建视图时使⽤ distinct
3.创建视图时使⽤ group bt 以及使⽤ having⼦句
4.创建视图时使用 union 已经 union all 语句。
5.查询列表中使用子查询。
6.在 from ⼦句中引⽤不可更新视图
四.视图的优缺点
1. 简单性:视图可以将复杂的查询变成⼀个简单的查询。
2. 安全性:通过视图,我们可以隐藏表中的敏感数据。
3. 逻辑数据独⽴性:视图提供了⼀种逻辑数据独⽴性,即使底层表结构发⽣变化,只需修改视图定 义,⽽⽆需修改依赖视图的应⽤程序。使⽤到应⽤程序与数据库的解耦
4. 重命名列:视图允许⽤⼾重命名列名,以增强数据可读性。
缺点:
1.性能开销:复杂视图的查询需要动态生成数据,可能要比正常查表要慢。
2.更新限制:部分视图不可以更新。