MySQL学习之视图

只谈情不闲聊 提交于 2019-12-17 04:26:05

视图

    SQL 视图 ( Views )
        其本质是【根据SQL语句获取动态的数据集,并为其命名】,
        用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。

    视图的特征:
        1. 视图总是显示最新的数据

        2. 每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据

    # 视图:是虚拟的,数据来源于物理表。
    # 虽然在单表的情况下,可以修改视图,但是我们不应该这样做,视图改了,源数据也会跟着改。
    # 而且涉及到多张表的情况下,是根本无法进行修改的。

创建视图

SQL CREATE VIEW 创建视图:
    CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition;
        说明: AS 关键字后面的 SQL 语句可以是任何合法的 SQL SELECT 语句
        例如: create view view_one as (select student_id, num from score);

修改视图

1. CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition

2. alter view view_one as (select student_id, course_id, num from score);

删除视图

drop view view_one;

说明

#1. 使用视图以后就无需每次都重写子查询的sql,
    但是这么做效率并不高,还不如我们写子查询的效率高

#2. 而且有一个致命的问题:视图是存放到数据库里的,如果我们程序中的sql过分依赖于数据库中存放的视图,
    那么意味着,一旦sql需要修改且涉及到视图的部分,则必须去数据库中进行修改,
    而通常在公司中数据库有专门的DBA负责,
    你要想完成修改,必须付出大量的沟通成本DBA可能才会帮你完成修改,极其地不方便
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!