zoukankan      html  css  js  c++  java
  • MySQL视图

    概念:视图是存储的sql脚本,并没有存储具体的数据,具体数据还是存储在脚本所引用的表中了(例如你提到的表1和表2)。视图只是从表1和表2中提取数据,所以,当表中的内容更改了,实体中的内容也就更改了(因为数据是来源表)。
      其实就是相当于我们带着眼镜(视图)看世界(表),世界(表)内容变了,眼镜(视图)中看到的自然也就变了。

    例子:

    表A:
    +----+--------+-----+--------+------------+
    | id | name   | age | sex    | intime     |
    +----+--------+-----+--------+------------+
    |  1 | 张三   |  16 | 男     | 1366691577 |
    |  2 | 刘能   |  26 | 男     | 1366691693 |
    |  3 | 王洁   |  15 | 女     | 1366691726 |
    |  4 | 张玉   |  19 | 保密   | 1366691753 |
    |  5 | 李莉   |  16 | 保密   | 1366698715 |
    +----+--------+-----+--------+------------+
    表B:
    +-----+-----------+-------+------------+------------+
    | gid | goodsname | price | codeinfo   | intime     |
    +-----+-----------+-------+------------+------------+
    |   1 | 铅笔      |  3.69 | 1254632126 | 1366698374 |
    +-----+-----------+-------+------------+------------+
    创建视图:

    mysql> create view `shitu` as select * from user union select * from goods;

    查看视图:
    mysql> select * from shitu;
    +----+--------+-------+------------+------------+
    | id | name   | age   | sex        | intime     |
    +----+--------+-------+------------+------------+
    |  1 | 张三   | 16.00 | 男         | 1366691577 |
    |  2 | 刘能   | 26.00 | 男         | 1366691693 |
    |  3 | 王洁   | 15.00 | 女         | 1366691726 |
    |  4 | 张玉   | 19.00 | 保密       | 1366691753 |
    |  5 | 李莉   | 16.00 | 保密       | 1366698715 |
    |  1 | 铅笔   |  3.69 | 1254632126 | 1366698374 |
    +----+--------+-------+------------+------------+


    疑问: 那么 ,我现在已经创建了视图 ,现在多了一个表3,怎么修改视图、添加表三呢?要是去掉表二呢?
    添加表三
    DROP VIEW  视图名字;

    CREATE VIEW   视图名字  AS
    SELECT  id,   name   FROM   table1
    UNION  ALL
    SELECT  id,   name   FROM   table2
    UNION  ALL
    SELECT  id,   name   FROM   table3;

    要是去掉表二
    DROP VIEW  视图名字;

    CREATE VIEW   视图名字  AS
    SELECT  id,   name   FROM   table1
    UNION  ALL
    SELECT  id,   name   FROM   table3;

    因为 视图本身不包含数据, 因此可以采用  先删除, 再创建的方式来处理.
    (注意:   这里删除的是   视图.    不要删除错了.    不是  删除表  )




  • 相关阅读:
    常见S1信令交互流程
    pthread_cond_wait避免线程空转
    sqlite:多线程操作数据库“database is locked”解决方法(二)
    sqlite:多线程操作数据库“database is locked”解决方法
    大端 小端
    关于天气分类的贝叶斯预测
    n 支队伍比赛,分别编号为 0,1,2。。。。n-1,已知它们之间的实力对比关系, 存储在一个二维数组 w[n][n]中,w[i][j] 的值代表编号为 i,j 的队伍中更强的一支。
    AC自动机 多模式匹配
    浮点数转换成二进制
    在一个缓冲去内实现三个栈,使用自有链表记录空闲块
  • 原文地址:https://www.cnblogs.com/thinksasa/p/3038194.html
Copyright © 2011-2022 走看看