zoukankan      html  css  js  c++  java
  • Mysql视图的创建及使用

    视图理解:

    视图又叫虚表。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义
    视图的查询所引用的表,并且在引用视图时动态生成。

    视图的工作机制:当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。

    视图这样设计有什么好处?节省空间,内容是总是一致的话,那么我们不需要维护视图的内容,维护好真实表的内容,就可以保证视图的完整性了。

    MySQL视图是从一个或多个表中导出来的表:

    创建视图的语句:

    一、首先查询

    select select_priv,create_view_priv from mysql.user where user ='root';

    二、创建视图

    create view depart_view as select * from depart;

    查询视图结构:desc depart_view;

    第二种创建视图:

    create view depart_view2(id,name) as select id,name from depart;

    以上是单表上创建视图;

    多表的视图创建:

    create algorithm=merge view student_view1(id,name,sex) as select worker.id,name,sex from worker,student where worker.id = student.w_id
    with local check option;

    查看视图的方法:

    1.describe student_view1;
    
    2.show create view student_view1;
    
    3.show table status like '视图名'

    所有视图定义都存在information_schema数据库下的views表中。查询views表,可以查看到数据库中所有视图的详细信息。查询的语句如下:

    select * from information_schema.views;
    视图主要有以下作用:
    1、安全。一些数据表有着重要的信息。有些字段是保密的,不能让用户直接看到。这时就可以创建一个视图,在这张视图中只保留一部分字段。这样,用户就可以查询自己需要的字段,不能查
    看保密的字段。 2、性能。关系数据库的数据常常会分表存储,使用外键建立这些表的之间关系。这时,数据库查询通常会用到连接(JOIN)。这样做不但麻烦,效率相对也比较低。如果建立一个视图,将相关
    的表和字段组合在一起,就可以避免使用JOIN查询数据。 3、灵活。如果系统中有一张旧的表,这张表由于设计的问题,即将被废弃。然而,很多应用都是基于这张表,不易修改。这时就可以建立一张视图,视图中的数据直接映射到新建的表。这样,就
    可以少做很多改动,也达到了升级数据表的目的。

      


    from:http://blog.csdn.net/qq_27416209/article/details/50788594
  • 相关阅读:
    “TensorFlow 开发者出道计划”全攻略,玩转社区看这里!
    适合 C++ 新手学习的开源项目——在 GitHub 学编程
    【9303】平面分割
    【u114】旅行计划(12月你好)
    【u236】火炬
    【u233】单词化简
    Java Web整合开发(41) -- Forum
    1、服务器(软件)种类
    jquery trigger
    jQuery实现当按下回车键时绑定点击事件
  • 原文地址:https://www.cnblogs.com/zjfjava/p/6922605.html
Copyright © 2011-2022 走看看