作者:姜瑞海
姜瑞海
中国PG分会认证专家
PostgreSQL资深内核研发工程师
目录
1 什么是视图
2 什么是物化视图
3 物化视图多表Join举例
4 物化视图的其他特点
5 物化视图和外部表(fdw)配合使用
6 总结
什么是视图
视图(View):一个名字(视图的名字),对应着一个SQL查询语句。做查询时,把视图的名字当作表名使用,PostgreSQL会使用对应的SQL查询语句替换视图名称,然后做查询,返回最终的结果。
举例:给定一个表employee_info,定义一个视图employee_contact如下:
create view employee_contactas select employee_id, first_name ||' '|| last_name as name, mobile_num, email from employee_info;
该视图的作用是:把表employee_info(公司员工信息表)的字段做过滤,只取其中的5个字段,拼成4个字段,形成一个公司内部通信录。
其中,表employee_info的定义如下:
create table employee_info ( employee_id integer not null, first_name varchar(100), last_name varchar(100), email varchar(50), mobile_num varchar(20), hire_date timestamp without time zone not null, salary int, bank_number varchar(20), department_id smallint not null, supervisor_