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.视图的一些规则

  • 和表一样,命名唯一
  • 创建视图数目无限制
  • 视图不能添加索引
  • 视图可以和表一起使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值