一、视图
1、视图和表
使用试图时会执行SELECT语句并创建一张临时表。视图中保存的是SELECT语句;表中保存的是实际数据。
2、创建视图的方法
CREATE VIEW 视图名称(<视图列名1>,<视图列名2>,……)
AS
<SELECT语句>
CREATE VIEW ProductSum (product_type, cnt_product)
AS
SELECT product_type, COUNT(*)
FROM Product
GROUP BY product_type;
SELECT product_type, cnt_product
FROM ProductSum;
product_type | cnt_product
--------------+-------------
厨房用具 | 4
衣服 | 2
办公用品 | 2
还可以以视图为基础创建视图,但多重视图会降低SQL的性能。
-- 在视图的基础上创建视图
CREATE VIEW ProductSumJim (product_type, cnt_product)
AS
SELECT product_type, cnt_product
FROM ProductSum
WHERE product_type = '办公用品';
-- 确认创建好的视图
SELECT product_type, cnt_product
FROM ProductSumJim;
product_type | cnt_product
--------------+-------------
办公用品 | 2
3、视图的限制1(定义视图时不能使用ORDER BY子句)
4、视图的限制2(对视图进行更新)
通过汇总得到的表无法更新
能够更新的情况(既没有聚合有没有结合)
CREATE VIEW ProductJim (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
AS
SELECT *
FROM Product
WHERE product_type = '办公用品';
-- 向视图中添加数据行
INSERT INTO ProductJim VALUES ('0009', '印章', '办公用品', 95, 10, '2009-11-30');
-- 确认数据是否已经添加到视图中
S