• mysql 内置功能 视图介绍


    之前的多表查询本质是把多张有关系的表连接在一起组成一张虚拟表,从而进行查询

    视图

    视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,

    用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。

     

    使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用

     

     

     

    #两张有关系的表
    mysql> use db2;
    
    mysql> show tables;
    +---------------+
    | Tables_in_db2 |
    +---------------+
    | class         |
    | course        |
    | score         |
    | student       |
    | teacher       |
    +---------------+
    5 rows in set (0.00 sec)


    mysql> select * from course;
    +-----+--------+------------+
    | cid | cname  | teacher_id |
    +-----+--------+------------+
    |   1 | 生物   |          1 |
    |   2 | 物理   |          2 |
    |   3 | 体育   |          3 |
    |   4 | 美术   |          2 |
    +-----+--------+------------+
    4 rows in set (0.00 sec)
    
    mysql> select * from teacher;
    +-----+-----------------+
    | tid | tname           |
    +-----+-----------------+
    |   1 | 张磊老师        |
    |   2 | 李平老师        |
    |   3 | 刘海燕老师      |
    |   4 | 朱云海老师      |
    |   5 | 李杰老师        |
    +-----+-----------------+
    5 rows in set (0.00 sec)

    这是一张虚拟表 临时的表 但是要重复写虚拟写

    mysql> select * from course inner join teacher on course.teacher_id=teacher.tid;
    +-----+--------+------------+-----+-----------------+
    | cid | cname  | teacher_id | tid | tname           |
    +-----+--------+------------+-----+-----------------+
    |   1 | 生物   |          1 |   1 | 张磊老师        |
    |   2 | 物理   |          2 |   2 | 李平老师        |
    |   4 | 美术   |          2 |   2 | 李平老师        |
    |   3 | 体育   |          3 |   3 | 刘海燕老师      |
    +-----+--------+------------+-----+-----------------+
    4 rows in set (0.16 sec)
    如果想虚拟表重复使用,视图就是把sql语句查询出来的虚拟表保存起来,以后再使用

     类似于python的变量 把查询的结果就是一张虚拟表 赋值给一个变量 ,然后可以直接调用这个变量显示查询的虚拟表结果

     

     

  • 相关阅读:
    Red5/FMS视频直播带宽计算
    基于NPOI开源框架写的ExcelHelper
    Using C# 4.0 and dynamic to parse JSON
    跟我学MVVM模式开发
    supermap使用代码示例(GIS)
    使用OpenXML将Excel内容读取到DataTable中
    ADO 数据类型转换表
    I don't like Regex...
    将Datatable转Excel少于4笔时汉字乱码4/26
    记录宝宝成长脚印3/31
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/9937659.html
Copyright © 2020-2023  润新知