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

    18.1 视图

    视图是虚拟的表,本身不包含数据,也就不能对其进行索引操作。

    对视图的操作和对普通表的操作一样。

    视图具有如下好处:

    • 简化复杂的 SQL 操作,比如复杂的连接;
    • 只使用实际表的一部分数据;
    • 通过只给用户访问视图的权限,保证数据的安全性;
    • 更改数据格式和表示。

    18.2 使用视图

    • 视图用CREATE VIEW语句来创建。
    • 使用SHOW CREATE VIEW viewname;来查看创建视图的语句。
    • DROP删除视图,其语法为DROP VIEW viewname;
    • 更新视图时,可以先用DROP再用CREATE,也可以直接用CREATE ORREPLACE VIEW。如果要更新的视图不存在,则第2条更新语句会创建一个视图;如果要更新的视图存在,则第2条更新语句会替换原有视图。

    18.2.1 利用视图简化复杂的联结 

    看这样一个例子:

    CREATE VIEW productcustomers AS 
    SELECT cust_name, cust_contact, prod_id
    FROM customers, orders, orderitems
    WHERE customers.cust_id = orders.cust_id
    AND orderitems.order_num = orders.order_num;

    这条语句创建一个名为productcustomers的视图, 它联结三个表,以返回已订购了任意产品的所有客户的列表。如果执行SELECT * FROM productcustomers,将列出订购了任意产品的客户。
    为检索订购了产品TNT2的客户,可如下进行:

    SELECT cust_name, cust_contact
    FROM productcustomers 
    WHERE prod_id = ' TNT2';

    利用视图,可一次性编写基础的SQL,然后根据需要多次使用。

    18.2.2 用视图重新格式化检索出的数据

    创建方式和上一小节类似,都是在开头使用 CREATE VIEW viewname AS

    CREATE VIEW vendorlocations AS 
    SELECT Contact(RTRIM(vend_name) '(' RTRIM(vend_country) ')') 
    AS vend_title
    FROM vendors;

    18.2.3 用视图过滤不想要的数据

    CREATE VIEW customeremaillist AS 
    SELECT cust_id, cust_name, cust_email
    FROM customers
    WHERE cust_email IS NOT NULL;

    18.2.4 使用视图与计算字段

    CREATE VIEW orderitemsexpanded AS 
    SELECT order_num,
           prod_id,
           quantity,
           item_price,
           quantity * item_price AS expanded_price
    FROM orderitems;
  • 相关阅读:
    python 多进程下的日志打印
    卷积神经网络思考点,卷积网络就是很多个小分类器构建的网络
    ShuffleNetV1 paper reading
    find,grep,mv 组合使用,对大量数据切割方便
    常用的开源协议
    python3 日志重复打印logger
    pytorch clamp 与clamp_区别
    version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
    pytorch,cuda8,torch.cuda.is_available return flase (ubuntu14)
    opencv remap 函数
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10169266.html
Copyright © 2011-2022 走看看