使用视图

一、视图

  视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。

二、使用视图的意义

  1.替代重复的SQL语句; 
  2.简化复杂的SQL操作。在编写查询后,可以方便地重用它,而不必知道它的基本查询细节; 
  3.使用表的组成部分而不是整个表; 
  4.保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限; 
  5.更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。

三、视图的规则和限制

  1.与表名一样,视图必须唯一命名; 
  2.可创建的视图数目没有限制; 
  3.为了创建视图必须有足够的权限; 
  4.视图可以嵌套,即可以从其他视图中检索数据的查询来构造一个视图; 
  5.ORDER BY可以用在视图中,但如果从该视图检索数据的SELECT语句中也含有ORDER BY,那么视图中的ORDER BY将被覆盖; 
  6.视图不能索引,也不能有关联的触发器或默认值; 
  7.视图可以和表一起使用。

四、使用视图

1.创建视图 

  视图用CREATE VIEW语句来创建。可以使用SHOW CREATE VIEW viewname;来查询创建视图的语句。下面为创建视图的例子:

CREATE VIEW productCustomers AS
SELECT cust_name, cust_contact, prod_id
FROM customers, orders, orderitems
WHERE customers.cust_id = orders.cust_id AND
      orderitems.order_num = orders.order_num;

使用下列语句来查看一下创建的视图:

SELECT *
FROM productCustomers

执行结果: 

这里写图片描述

可以检索订购了产品TNT2的客户信息:

SELECT cust_name, cust_contact
FROM productCustomers
WHERE prod_id = 'TNT2';

执行结果: 

这里写图片描述

2.删除视图 

  使用DROP删除视图,其语法为DROP VIEW viewname;下列语句将删除视图productCustomers:

DROP VIEW productCustomers;
删除后,若再想检索视图中的数据是将报错,如下所示: 

这里写图片描述

3.更新视图 

  更新视图时,可以先用DROP删除视图,再用CREATE创建视图。也可以直接用CREATE OR REPLACE VIEW。如果要更新的视图不存在则会创建一个视图,若存在则会替换原来的视图。

如果视图定义中有以下操作,则不能进行视图的更新:

分组(使用GROUP BY和HAVING);

联结;

子查询;

并;

聚集函数(Min()、Count()、Sum()等);

DISTINCT。

一般的,应该将视图用于检索(SELECT语句),而并不用于更新(INSERT、UPDATE、DELLETE)。



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金州饿霸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值