【MySQL必知必会】第22章:视图

22.1 视图的使用

22.1.1 视图简介

就像在检索数据使用AS关键字来指定别名一样,视图其实就类似AS的功能,只是前者是作用在表中,即将查询返回的结果包装成一个虚拟的表(类似别名),这就是视图的作用。

视图一般用于以下情况:

  • 重复SQL语句
  • 简化SQL操作,编写好后不必知道其查询细节
  • 使用表的组成部分而不是整个表
  • 保护数据,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。
  • 重要的是知道视图仅仅是用来查看存储在别处的数据的一种设施

22.1.2 视图的规则与限制

以下为视图创建和使用的一些最常见的规则和限制:

  • 与表一样,视图必须命名唯一(视图不与其他视图或表名相同)
  • 视图可嵌套,即可以利用从其他视图中检索数据的查询来构造一个视图
  • 视图不能索引,也不能有关联的触发器或默认值。
  • 视图可以和表一起使用。例如,编写一条联结表和视图的SELECT语句。

22.2 视图语句

视图的语句大致有以下几个:

  • 创建语句:CREATE VIEW name;

  • 查看视图语句:SHOW CREATE VIEW view_name;

  • 删除视图:DROP VIEW view_name;

  • 更新视图:

    1. 可以先使用DROP再用CREATE
    2. 也可以直接使用CREATE OR REPLACE VIEW
#创建视图
CREATE VIEW product_customers 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 cust_name, cust_contact
FROM product_customers
WHERE prod_id = 'TNT2';

22.3 更新视图

一般将视图用于检索(SELECT语句),而不用于更新(INSERT、UPDATE和DELETE);当然视图的更新也是是情况而定的,如果MySQL不 能正确地确定被更新的基数据,则不允许更新(包括插入和删除)。

你可能感兴趣的:(【MySQL必知必会】第22章:视图)