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
  • 相关阅读:
    There is an overlap in the region chain修复
    There is an overlap in the region chain
    region xx not deployed on any region server
    python 中的re模块,正则表达式
    TCP粘包问题解析与解决
    yield from
    Git push提交时报错Permission denied(publickey)...Please make sure you have the correct access rights and the repository exists.
    mysql 中Varchar 与char的区别
    Mysql 字符集及排序规则
    请实现一个装饰器,限制该函数被调用的频率,如10秒一次
  • 原文地址:https://www.cnblogs.com/zjfjava/p/6922605.html
Copyright © 2011-2022 走看看