zoukankan      html  css  js  c++  java
  • 数据库的视图

    视图(view)

    视图:视图主要体现在供用户查看,至数据的存储与视图无关。

        视图就是存储sql语句。

    MySQL视图就是一种虚拟表,实际数据的存储是产生视图的sql语句的基表中。

        对基本中数据的更新,会即时返回到视图。

    创建视图:

    create view 视图名 as select语句;

    示例:

        create view vw as select * from stu;

    查看视图:

        视图也是一种表,

    show tables、show create table、show create view、desc、show columns from

    修改视图

    语法:

        alter view 视图名(字段列表) as sql语句;

    视图操作

    单表视图:产生视图的sql语句,只用到了一个表

    多表视图:产生视图的sql语句,用到了多张表。

    对于单表视图,可以执行新增、修改、删除操作。

    示例:

    多表视图:

    创建多表视图:

    create view vw1 as select stu.id,s_num,s_name,sex,c_id,c_name,room from stu,class where stu.c_id=class.id;

    错误:

    示例:

    多表视图的操作:

    注意:

        创建多表视图,如果出现字段同名,

        create view vw2 as select stu.id s_id,class.id c_id from stu,class where stu.c_id=class.id;

    视图的删除

    drop view 视图名;

    视图算法

        视图也有算法,由于视图是由SQL语句产生的一表,查询视图时还会使用SQL。涉及两个SQL语句。SQL语句中的五子句会有执行顺序的问题。

    查看算法:

    show create table 视图名;

    示例:

    MySQL中视图算法分三种:

    undefined        (缺省)由MySQL自已决定使用是merge算法还是temptable,为了效率,大多数时,是选择merge算法。

    merge            将产生视图的sql语句与查询视图的sql语句进行合并,再一次执行。只执行一次SQL操作

    temptable        先执行产生视图的SQL语句,再执行查询视图的SQL语句。执行两次SQL操作。

    示例:

    1、创建视图

    2、为演示不同创建一个实体表

    3、对实体表执行分组操作

    示例:

    4、对视图进行相同的操作

    原因是,视图使用的merge算法。

    创建视图的语句:

        create view vw3 as select * from stu order by age desc;

    查询视图的语句:

        select * from vw3 group by c_id;

    两条sql需要先进行合并再执行。

    select * from stu group by c_id order by age desc;

    5、更改视图算法。

    6、执行查询操作

    提示:

        一般不需要考虑视图算法,但是当视图的创建sql与视图的查询sql的五子句在执行顺序上有先后问题时,才考虑算法法问题。

  • 相关阅读:
    react.js从入门到精通(四)——组件的基本使用
    react.js从入门到精通(二)——变量的定义和初始化、事件的使用
    react.js从入门到精通(三)——生命周期钩子函数的使用
    react.js从入门到精通(一)
    第三篇 12306自动刷票下单-下单
    第二篇 12306自动刷票下单-查票下单
    第一篇 12306自动下单抢票
    DOM
    Html5标签
    在Windows中配置Rsync同步文件的方法
  • 原文地址:https://www.cnblogs.com/nyxd/p/5359742.html
Copyright © 2011-2022 走看看