视图
前言
当SQL语句比较复杂且需要反复执行时,如果每次都要重新编写SQL就会比较麻烦,可以用视图(View)来简化SQL。
查看视图
- psql查看单个视图
\d view_name
- 列出当前schema中的所有视图
SELECT table_name
FROM information_schema.tables
WHERE table_type = 'VIEW'
AND table_schema = current_schema();
创建视图
create view view_name as
select col1, col2 ...
from table_name
where [condition];
删除视图
DROP VIEW IF EXISTS view_name;
更新视图
视图只是逻辑概念,如果要更新视图的定义,可以直接删掉再重新创建。
可以通过视图执行DML操作,但不是所有的视图都可以执行DML,视图定义稍微复杂点就执行不了。
-- 简单的视图还能执行DML
update view1 set sal=sal+100
临时视 图
Postgres中有临时视图,在当前会话结束时,临时视图就会被自动删除。
create or replace temporary tempview as ...