最近在跟一部番剧,地缚少年花子君,画风还挺舒服的,饭前饭后刚好一集。又焦虑又紧张,还是需要不断付出努力来获得自己的一点认可吧。所以今天跟的是视图:
这一课主要讲的是视图是啥,相关用法,使用场景,如何使用视图简化前面部分SQL操作。
目录
18.1 视图
视图是虚拟的表,跟存数据的表不一样,只包含使用动态检索数据的的查询。
DBMS支持问题,先说MySQL,从版本5起开始支持视图(我练习用的5.7版本),Access是不支持的,其他的具体看吧,
为了更好理解视图,走个例子就明白了:
SELECT cust_name,cust_contact FROM Customers,Orders,OrderItems WHERE Customers.cust_id=Orders.cust_id AND OrderItems.order_num=Orders.order_num AND prod_id='RGAN01';
用来检索到订购了某种产品的顾客,任何需要这个数据的人都必须理解相关表的结构和如何创建查询和表的联结,并且检索其他产品的相同数据,必须修改最后的WHERE子句。
那么改动一下需求接着走,如果把整个查询包装成ProductCustomers的虚拟表,在来检索:
之所以没有得到和上面联结表查询相同结果是因为,视图的创建并没有提前做好。等我们后面学习了创建视图的语法再来回顾整个问题。
所有DBMS都支持视图创建。
接下来,我们可以了解一下?为什么使用视图?
① 为什么使用视图
换句话来说,在什么场景下,用到视图呢?书上给了总结,大致有这五种:
□ 复用SQL语句。
□ 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道其基本查询细节。
□ 使用表的一部分而不是整个表。
□ 保护数据。可以授予用户访问表的特定部分的权限,而不是整个表的访问权限。
□ 更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。
创建视图以后,使用方式和前面对表操作相同,可SELECT、过滤排序,可联结(其他视图或表)、添加更新数据(略微有些限制