openGauss如何创建和管理视图


风晓
风晓 2024-01-15 09:29:43 49293 赞同 0 反对 0
分类: 资源 标签: 国产数据库
openGauss如何创建和管理视图

什么是视图

当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。

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

构造测试数据

步骤 1 执行如下语句,创建测试表。

CREATE TABLE infotest (  id int,  name varchar(30) ,  price float ,  PRIMARY KEY (id)) ;

步骤 2 执行如下语句,在表中插入数据。

insert into infotest values (1001,'牙刷',10.5),(1002,'毛巾',21.5),(1003,'茶几',999.9),(1004,'电视',3199),(1005,'冰箱',2999),(1006,'1 手机',1999),(1007,'2 手机',7699),(1008,'.3 手机',699.9),(1009,'T恤',21.5),(1010,'牛仔裤',99);

创建视图

执行如下语句创建新视图MyView,其中infotest为构造测试数据中创建的表。

CREATE OR REPLACE VIEW MyView AS SELECT * FROM infotest WHERE price < 1000;

CREATE VIEW

CREATE VIEW中的OR REPLACE可有可无,当存在OR REPLACE时,表示若以前存在该视图就进行替换。

查询视图

执行如下语句查询MyView视图。

SELECT * FROM MyView;

  id  |   name    | price 
------+-----------+-------
1001 | 牙刷 | 10.5
1002 | 毛巾 | 21.5
1003 | 茶几 | 999.9
1008 | .3 手机 | 699.9
1009 | T恤 | 21.5
1010 | 牛仔裤 | 99
(6 rows)

查看某视图的具体信息

执行如下语句查询MyView视图的详细信息。

\d+ MyView

                         View "root.myview" 
Column | Type | Modifiers | Storage | Description
--------+-----------------------+-----------+----------+-------------
id | integer | | plain |
name | character varying(30) | | extended |
price | double precision | | plain |
View definition:
SELECT *
FROM infotest
WHERE infotest.price < 1000::double precision;

更新数据

步骤 1 执行如下语句更新数据。

UPDATE infotest SET name = '手机' where id = 1008;

步骤 2 更新数据后,通过视图查询更新后的信息。

SELECT * FROM MyView;

  id  |   name    | price 
------+-----------+-------
1001 | 牙刷 | 10.5
1002 | 毛巾 | 21.5
1003 | 茶几 | 999.9
1009 | T恤 | 21.5
1010 | 牛仔裤 | 99
1008 | 手机 | 699.9
(6 rows)

更改视图名称

步骤 1 执行如下语句将视图改名。

ALTER VIEW  MyView RENAME TO YourView;

ALTER VIEW

更多用法请参考更改视图。

步骤 2 执行如下命令,查看改名效果。

\d+ YourView

                        View "root.yourview"
Column | Type | Modifiers | Storage | Description
--------+-----------------------+-----------+----------+-------------
id | integer | | plain |
name | character varying(30) | | extended |
price | double precision | | plain |
View definition:
SELECT *
FROM infotest
WHERE infotest.price < 1000::double precision;

删除视图

执行如下命令删除MyView视图。

drop view YourView;

DROP VIEW

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  125
统信桌面专业版【全盘安装UOS系统】介绍  120
银河麒麟桌面操作系统安装佳能打印机驱动方法  112
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!