`
xuedong
  • 浏览: 288071 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL 视图 .

阅读更多

视图简介:

注意:需要MySQL 5,MySQL 5添加了对视图的支持,所以需要MySQL 5 及以后的版本

 

视图也称为虚表,包括执行某个查询返回的一组记录。视图可以简化获取数组的方法,并通过别名来实现抽象查询。

 

先看个例子吧!

SELECT cust_name,cust_contact FROM customers,orders,orderitems WHERE customers.id = orders.cust_id

AND orderitems.order_num = orders.order_num AND prod_name = 'TNT2';

这个例子是用来查询订购了‘TNT2’产品的客户名称和联系方式。任何需要这个数据的人都需要理解相关的表的结构,并且知道如何创建查询对表进行

联接,

假设可以把整个查询包装称为一个虚拟的表productcustomers的虚拟表那么

上面的语句就可一简化成

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

那么这个虚拟表就是一个视图,它的数据是

SELECT cust_name,cust_contact FROM customers,orders,orderitems WHERE customers.id = orders.cust_id

AND orderitems.order_num = orders.order_num;

 或者

SELECT * FROM customers,orders,orderitems WHERE customers.id = orders.cust_id

AND orderitems.order_num = orders.order_num;

这样就可以不关注其中的数据逻辑,简化了SQL。

为什么用视图:

1):重用SQL语句。

2):简化复杂的SQL语句。在编写查询后,可以方便的重用它(承接第一条)而不必知道它的基本细节。

3):使用表的组成部分而不是整个表。

4):保护数据。可以给用户授予表的特定的部分的访问权限,而不是整个表的使用权限。

5):更改数据格式和表示。视图可以返回跟底层表的格式不同的数据。

   视图仅仅是用来查看存储在别处的数据的一种设施,视图本身并不包含数据,因此它们返回的数据是从其他表中检索出来的。在更新这些表中的数据的时候,视图将

    返回改变过得数据。同时要注意,每次使用视图的时候,都必须处理查询执行所需要的每一个检索,如果视图相对比较复杂那么性能会下降很多,这点要注意。

视图的规则和限制:

1):与表名一样,视图必须唯一命名。

2):对于可以创建视图的数目没有限制。

3):为了创建视图,必须有足够的访问权限。

4):视图可以嵌套,即可以用从其他视图中检索数据的查询来构造一个视图。

5):ORDER BY 可以用在视图中,但是如果从该视图检索的SELECT语句中也有 ORDER BY 的话那么该视图中的ORDER BY 将被覆盖。

6):视图不能索引,也不能有关联的触发器或者默认值。

7):视图可以和表一起使用。例如,编写一条联接表和视图的SELECT 语句。

 

转自:http://blog.csdn.net/justbebetter/article/details/6048313

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics