创建视图
CREAT VIEW sales_by_client AS
SELECT
c.client_id,
c.name,
SUM(invoice_total) AS total_sales
FROM clients c
JOIN invoice i USING(client_id)
GROUP BY client_id,name
可以像选中表一样选择视图。
SELECT *
FROM sales_by_client
ORDER BY total_sales DESC
也是可以得到结果的
更改或删除视图
DROP VIEW sales_by_client
删除视图
CREAT OR REPLACE VIEW sales_by_client AS
SELECT
c.client_id,
c.name,
SUM(invoice_total) AS total_sales
FROM clients c
JOIN invoice i USING(client_id)
GROUP BY client_id,name
或者使用源码控制
可更新视图
如果视图中没有DISC,聚合函数和GROUP BY/HAVING UNION等语句的话就是可以更新的。
可以删除和更新数据。
如果在更新或者删除操作时时不希望一些行消失的话,在创建视图的语句最后一行打上WITH CHECK OPTION 这样在删除时就会得到错误提示。
视图的其他优点
视图刻意减小数据库设计改动的影响。
可以使用视图限制基础表访问。