暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第11天 | 视图的基本操作

原创 2021-12-13
955

视图

视图与基本表不同,不是物理上实际存在的,是一个虚表。
数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。
若基本表中的数据发生变化,从视图中查询出来的数据也随之改变。
视图每次被引用的时候都会运行一次。
从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。

1、创建视图的语法格式

CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW view_name [ ( column_name [, ...] ) ]
    [ WITH ( {view_option_name [= view_option_value]} [, ... ] ) ]
    AS query;

参数说明
OR REPLACE:如果视图已存在,则重新定义。
TEMP | TEMPORARY:创建临时视图。
view_name:要创建的视图名称。可以用模式修饰。
column_name:可选的名称列表,用作视图的字段名。如果没有给出,字段名取自查询中的字段名。
view_option_name [= view_option_value]:该子句为视图指定一个可选的参数。
query:为视图提供行和列的SELECT或VALUES语句。

2、更改视图的语法格式

--设置视图列的默认值
ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name SET DEFAULT expression;

--取消列视图列的默认值
ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name DROP DEFAULT;

--修改视图的所有者
ALTER VIEW [ IF EXISTS ] view_name OWNER TO new_owner;

--重命名视图
ALTER VIEW [ IF EXISTS ] view_name RENAME TO new_name;

--设置视图的所属模式
ALTER VIEW [ IF EXISTS ] view_name SET SCHEMA new_schema;

3、删除视图的语法格式

DROP VIEW [ IF EXISTS ] view_name [, ...] [ CASCADE | RESTRICT ];

CASCADE | RESTRICT
CASCADE:级联删除依赖此视图的对象(比如其他视图)。
RESTRICT:如果有依赖对象存在,则拒绝删除此视图。此选项为缺省值。

课程作业

1.1 为系统表PG_DATABASE创建视图

create schema lvzz; create view lvzz.view1 as select * from pg_database; \d+ lvzz.view1;

Image.png

1.2 重命名视图并修改owner为jim

alter view lvzz.view1 rename to view11; \d+ lvzz.view11; create user jim password 'abc@123456'; alter view lvzz.view11 owner to jim;

Image.png
Image.png

2.1 创建一个用户表student,并在用户表上创建视图

create table lvzz.student ( id integer, name varchar(20), sage integer ); create view view2 as select * from lvzz.student; \d+ view2;

Image.png

2.2 修改视图的schema

alter view view2 set schema lvzz; \d+ view2; \d+ lvzz.view2;

Image.png

3、使用pg_views查看视图信息

select * from pg_views where viewname = 'view11' or viewname = 'view2';

Image.png

4、删除视图、表、用户

drop view lvzz.view11; drop view lvzz.view2; drop table lvzz.student; drop user jim;

Image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论