• MySQL视图


    一、视图的概念

    ​ 视图是虚拟的表。它将select语句查询到的数据包装成一张虚拟的表。后续可以直接利用这张虚拟表而不必知道原有表的结构,从而能简化后续的SQL操作。

    【注】视图本身是不包含数据的。视图提供了一种MySQL的select语句层次的封装,可用来简化数据处理以及重新格式化基础数据或保护基础数据。

    二、利用视图简化复杂的联结

    举例:

    create view productcustomers as
    select cust_name, cust_contact, prod_id
    from customers, orders, orderitems
    where customer.cust_id = orders.cust_id
    	and orderitems.order_num = orders.order_num;
    /*
    	这条语句创建了一个名为productcustomers的视图,它联结了三个表,返回了一张包含了已订购任意产品的所有客户	   的虚拟表。
    */
    
    select cust_name, cust_contact
    from productcustomers
    where prod_id = 'TNT2';
    -- 从视图中检索订购了产品'TNT2'的客户。
    

    ​ 可以看出,利用视图可以极大地简化复杂的SQL语句。一次创建出来的视图可以被多次重复使用。

    三、利用视图重新格式化检索出的数据

    举例:

    create view vendorlocations as
    select concat(rtrim(vend_name), '(', rtrim(vend_country), ')')
    	as vend_title
    from vendors
    order by vend_name;
    /*
    	如果需要经常使用这个格式的结果,就可以创建一个这样的视图,这样不必每次都得执行字符串连接操作,只需要直接使	 用已有的视图即可。
    */
    
    select *
    from vendorlocation;
    -- 从视图中直接检索这个格式的结果即可。
    

    四、利用视图过滤不想要的数据

    举例:

    create view customeremaillist as
    select cust_id, cust_name, cust_email
    from customers
    where cust_email is not null;
    /*
    	先利用where子句过滤掉cust_email为null的那些行,然后创建视图,就可以得到一张所有cust_email都不为空的	虚拟表了。
    */
    

    五、利用视图简化计算字段的使用

    举例:

    create view orderitemsexpanded as
    select order_num,
    	   prod_id,
    	   quantity,
    	   item_price,
    	   quantity*item_price as expanded_price
    from orderitems;
    
    select *
    from orderitemsexpanded
    where order_num = 20005;
    
  • 相关阅读:
    按比例缩放图片
    Centos8中安装并配置VDO来优化存储空间
    如何使用wipefs命令擦除磁盘上的签名
    cpufetch – 查询cpu架构信息的工具
    告别App,数字人民币钱包来了
    微软拿掉“测试版”的头衔,正式推出Windows 11 PC健康检查工具
    Find命令查找最近几天修改的文件
    Linux中source命令的使用方式
    稍微停顿,在思考一下。
    旺旺协议分析相关资料
  • 原文地址:https://www.cnblogs.com/jiajun107/p/12893380.html
Copyright © 2020-2023  润新知