SQL视图

带你从数据小白成长为数据分析师

返回

SQL视图

1. 视图介绍

什么是视图?

从使用SQL查询角度看,视图就是一张表

视图和表的区别是,表是保存了实际数据的,视图没有保存数据
视图实际上是一段SQL查询代码,在读取视图数据时,视图会执行该语句创建出一张临时表供读取

视图优点

  1. 视图无需保存数据,可以节省存储设备的容量
  2. 可以将频繁使用的SQL语句保存成视图,提高工作效率

2. 视图语句

创建视图

CREATE VIEW 视图名称(视图列名1,视图列名2,···)
AS -- 此AS与定义别名的AS不同,省略会发生错误
SQL查询语句
CREATE VIEW View_name (col1, col2_SUM)
AS
SELECT col1, SUM(col2) -- 视图主体
FROM table_name -- 视图主体
GROUP BY col1 -- 视图主体

视图使用限制:

  1. 创建视图的SQL查询语句可以使用任何SELECT语句,除了ORDER BY
  2. 可以创建多重视图,但会降低性能,经量要避免(以视图为基础创建新视图)
  3. 对视图进行增删改,要保证创建视图的SQL查询语句中不含 DISTINCT、GROUP BY、HAVING语句,并且FROM子句中只有一张表。因为这样才能保证视图和原表同步更新

PostgreSQL默认不能向视图中插入数据,需要进行设置

-- PostgreSQL 视图插入数据
CREATE OR REPLACE RULE insert_rule
AS ON INSERT
TO View_name DO INSTEAD
INSERT INTO table_name VALUES (
new.col3,
new.col4)

使用视图

SELECT col1, col2_SUM
FROM View_name -- 在FROM语句中使用视图名称替代表

删除视图

DROP VIEW 视图名称(视图列名1,视图列名2,···)
DROP VIEW View_name --删除视图

DROP VIEW View_name CASCADE --删除View_name视图本身及衍生视图