MySQL视图
Posted ych9527
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL视图相关的知识,希望对你有一定的参考价值。
1.是什么
- 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图
- 主要作用是,将表的内容,常用需要的部分创建一个部分,这样使用视图的时候,可以减少查询的数据量
- 比如用户资料,有的用户是长期在线,有的用户基本不上线,那么就可以为长期用户创建视图,减少查询
2.基本使用
-
创建视图
-
create view 视图名 as select语句
mysql> select *from t1; +------+-----------+ | id | name | +------+-----------+ | 1 | 曹孟德 | | 2 | 曹植 | | 3 | 曹丕 | | 4 | 许褚 | +------+-----------+ //建立视图,并且,只查看曹姓 mysql> create view vt as select id,name from t1 where name like '曹%'; //查看 -> 许诸不再视图之中 mysql> select *from vt; +------+-----------+ | id | name | +------+-----------+ | 1 | 曹孟德 | | 2 | 曹植 | | 3 | 曹丕 | +------+-----------+
-
-
修改视图,会对数据基表有影响
mysql> update vt set id=10 where name='曹孟德'; mysql> select * from vt; +------+-----------+ | id | name | +------+-----------+ | 10 | 曹孟德 | | 2 | 曹植 | | 3 | 曹丕 | +------+-----------+ mysql> select * from t1;; +------+-----------+ | id | name | +------+-----------+ | 10 | 曹孟德 | | 2 | 曹植 | | 3 | 曹丕 | | 4 | 许褚 |
-
修改基表,会对视图有影响
mysql> update t1 set id=1 where name='曹孟德'; mysql> select *from vt; +------+-----------+ | id | name | +------+-----------+ | 1 | 曹孟德 | | 2 | 曹植 | | 3 | 曹丕 | +------+-----------+
-
删除视图
-
drop view 视图名
mysql> show tables; +-----------------+ | Tables_in_base2 | +-----------------+ | t | | t1 | | vt | -> 创建视图,也会在硬盘之中形成对应的表结构 +-----------------+ mysql> drop view vt;
-
3.视图的一些规则
- 和表一样,命名唯一
- 创建视图数目无限制
- 视图不能添加索引
- 视图可以和表一起使用
以上是关于MySQL视图的主要内容,如果未能解决你的问题,请参考以下文章