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

openGauss每日一练第11天

原创 张辉 2021-12-11
739

课堂练习:

创建视图并查看:


创建较为复杂的视图:


查看系统视图:(其实应该是系统中有哪些视图)


修改视图名称、视图属主:


删除视图:


怎么会没有?原来应该写schema名称:



做作业:

1.为系统表PG_DATABASE创建视图,重命名视图并修改owner为jim,

create schema zhanghui;

create view zhanghui.my_view1 as

select * from pg_database;


select * from pg_views where viewname = 'zhanghui.my_view1' or viewname='zhanghui.my_view2';


select * from pg_views where viewname = 'my_view1' or viewname='my_view2';


原来view都在pg_views里面。不管前面有没有前缀。


alter view my_view1 rename to my_view10;

不行

alter view zhanghui.my_view1 rename to zhanghui.my_view10;

不行。

alter view zhanghui.my_view1 rename to my_view10;

这个才可以。

select * from pg_views where viewname = 'my_view10' or viewname='my_view2';


create user jim identified by 'Test@1234';

alter view zhanghui.my_view10 owner to jim;

select * from pg_views where viewname = 'my_view10' or viewname='my_view2';


2.创建一个用户表student,并在用户表上创建视图,修改视图schema;

create table zhanghui.student

( id integer,

name varchar(80)

);

create view zhanghui.my_view2 as select * from zhanghui.student;

alter view  zhanghui.my_view2 set schema public;

select * from pg_views where viewname = 'my_view10' or viewname='my_view2';


3.使用pg_views查看视图信息

select * from pg_views;

这个结果太多了。就不贴了。

4.删除视图、表、用户

drop view zhanghui.my_view10;

drop view my_view2;

drop table zhanghui.student;

drop user jim;


总结一下,view可以创建在schema下,也可以创建在public中。public下对view的操作是不需要加schema前缀的,schema下对view的操作要加schema前缀。但是在rename的时候又是前面要前缀,后面不要前缀。

总之语法貌似有点费解。。。

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

评论