1、什么是视图执行一条SQL,将结果集保存在一张虚拟表中2、为什么要使用视图重复利用SQL语句简化SQL查询,快速取数据只用知道表的部分结构保护数据,根据特定授权更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据。注意事项• 在视图创建后,可以用与表基本相同的方式使用(查询、过滤、排序数据、与其他视图或连结、(添加、更新))• 视图只是用来查看存储在别处的数据的设施,本身不包含数据,返回的数据也是从其他表检索出来的。• 因为视图本身不包含数据,索引多个表连结或嵌套可能存在性能问题,需测试3、规则和限制表名必须唯一(与其他视图和表)创建视图没有限制足够权限视图可以嵌套,可以从其他视图查询来构造一个视图如果视图和从视图中查询都有order by,视图中的order by将被覆盖视图不能索引视图可以和表一起使用4、使用视图创建视图 create view查看创建视图的语句。Show create view viewname删除视图 drop view viewname更新视图,1️ 先drop后create 2️ 直接用create or replace view利用视图简化复杂的联结查询5、利用视图简化复杂的联结查询创建视图CREATE VIEW productcustomers ASSELECT cust_name, cust_contact, prod_idFROM customers, orders, orderitemsWHERE customers.cust_id = orders.cust_idAND orderitems.order_num = orders.order_num使用视图SELECT cust_name, cust_contactFROM productcustomersWHERE prod_id = ‘TNT2’;6、用视图重新格式化检索出的数据select concat (rtrim(vend_name) , ‘(’,rtrim(vend_country),’)’) as vend_title from vendors order by vend_name;如果经常用到这个格式的话,可以创建一个视图CREATE VIEW vendorlocations ASSELECT concat ( rtrim( vend_name ), ‘(’, rtrim( vend_country ), ‘)’ ) AS vend_title FROM vendors ORDER BY vend_name;可以直接通过视图查询得出结果SELECT * FROM vendorlocations;