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视图的主要内容,如果未能解决你的问题,请参考以下文章

从mysql的片段中加载ListView

回收站视图未显示在片段中

如何从片段内的列表视图打开链接网址?

如何使列表视图出现在片段中?

如何从活动中更改片段中视图的可见性

片段中的网格视图