重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

MYSQL中视图的用法介绍(代码示例)

时间:2020-09-23 15:00:07 作者:重庆seo小潘 来源:
本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1、什么是视图 执行一条SQL,将结果集保存在一张虚拟表中 (相关推荐:MySQL教程) 2、为什么要使用视图 重复利用SQL语

本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、什么是视图

执行一条SQL,将结果集保存在一张虚拟表中

(相关推荐:MySQL教程)

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_idANDorderitems.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_titlefrom vendors order by vend_name;如果经常用到这个格式的话,可以创建一个视图CREATE VIEW vendorlocations ASSELECTconcat ( rtrim( vend_name ), '(', rtrim( vend_country ), ')' ) AS vend_title FROMvendors ORDER BYvend_name;可以直接通过视图查询得出结果SELECT * FROM vendorlocations;7、用视图过滤不想要的数据create view custmeremaillist ASSELECT cust_id ,cust_name,cust_emailfrom customerswhere cust_email is not NULL;直接使用视图SELECT * from custmeremaillist ;8、使用视图与计算字段

mysql查询SELECTprod_id,quantity,item_price,quantity * item_price AS expanded_price FROMorderitemsWHERE order_num=20005;创建视图CREATE VIEW orderitemsexpanded ASSELECTorder_num,prod_id,quantity,item_price,quantity * item_price AS expanded_price FROMorderitemsWHERE order_num=20005;使用视图SELECT*FROMorderitemsexpandedWHERE order_num=20005;9、更新视图

通常,视图是可以更新的(insert、update、delete)。更新视图将更新基表。如果视图中有以下定义将不能被更新。1. 分组(group by 和 having)2. 联结3. 自查询4. 并5. 聚合函数(min()、count()、sum()等)6. Distinct7. 导出(计算)列所以视图最好直接使用select查询。以上就是MYSQL中视图的用法介绍(代码示例)的详细内容,更多请关注小潘博客其它相关文章!