openGauss数据库模式管理

举报
redtea 发表于 2024/09/11 12:06:43 2024/09/11
【摘要】 一个数据库中可以建立多个模式。模式就是数据库对象的集合,可以定义实验内容模式包含的数据库对象(基本表、视图、索引、触发器、存储过程、函数和包等)。

一、数据库模式

一个数据库中可以建立多个模式。模式就是数据库对象的集合,可以定义实验内容模式包含的数据库对象(基本表、视图、索引、触发器、存储过程、函数和包等)

1.定义模式

1)根据用户名定义模式

语法格式:CREATE SCHEMA AUTHORIZATION user_name [ schema_element [ ... ] ];

2)根据指定的名称创建模式

语法格式:CREATE SCHEMA schema_name

    [ AUTHORIZATION user_name ] [ schema_element [ ... ] ];

2.查看模式

通过gsql登录数据库,输入

\dn

3.删除模式

语法格式 :

DROP SCHEMA [ IF EXISTS ] schema_name [, ...] [ CASCADE | RESTRICT ];

参数说明:

CASCADE:自动删除包含在模式中的对象。

RESTRICT:如果模式包含任何对象,则删除失败(缺省行为)。

4.查询模式下的对象

select table_schema,table_name

from information_schema.tables

where table_schema=schema_name;

5.设置模式的搜索路径search_path

1)设置会话级的模式搜索路径

set search_path to schema_name;

2)设置用户级级的模式搜索路径

alter user user_name set search_path to schema_name;

3)设置数据库级的模式搜索路径

alter database database_name

set search_path to schema_name;

6.查看数据库模式的搜索路径

show search_path;

二、模式管理实验

  1. 查看数据库模式

以数据库管理员身份通登录数据库dbcourseSelect,查看数据库dbcourseSelect模式。

[ouser@openEuler2203 ~]$ gsql -h 192.168.116.147 -p 5432 -U student -W Mar152024@ -d dbcourseselect  #通过gsql1以非数据库安装管理员远程登录数据库dbcourseselect

gsql ((openGauss 5.0.1 build 33b035fd) compiled at 2023-12-15 19:51:49 commit 0 last mr  )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type "help" for help.

dbcourseselect=> --查看数据库模式

dbcourseselect=> \dn

      List of schemas

      Name       |  Owner

-----------------+---------

 blockchain      | ouser

 cstore          | ouser

 db4ai           | ouser

 dbe_perf        | ouser

 dbe_pldebugger  | ouser

 dbe_pldeveloper | ouser

 dbe_sql_util    | ouser

 pkg_service     | ouser

 public          | ouser

snapshot        | ouser

 sqladvisor      | ouser

(11 rows)

2.    创建数据库模式
(1)创建与用户同名的模式。在DataStudio中基于数据库courseSelect数据库管理员创建同名模式student。
--创建模式student
create schema student authorization student;
(2)按指定的名称创建模式。在DataStudio中指定名称创建模式schedule1。
--创建模式schedule1
create schema schema1 authorization student;
3.删除数据库模式
在DataStudio中删除模式schedule1及其下的数据库对象
--删除模式schema1及其下的对象
drop schema schema1 cascade;
4.设置数据库对象的模式
将数据库dbcourseselect默认模式public下对象的模式设置为student。
--将数据库dbcourseselect默认模式public下对象的模式设置为student
alter table majortype set schema student;
alter table major set schema student;
alter table student set schema student;
alter table department set schema student;
alter table v_major set schema student;
alter table v_student set schema student;
5.查询student模式下的表、视图。
dbcourseselect=> select table_schema,table_name from information_schema.tables where table_schema='student'; --查询模式下的对象
 table_schema | table_name
--------------+------------
 student      | major
 student      | department
 student      | majortype
 student      | student
 student      | v_major
 student      | v_student
6.设置数据库模式的搜索路径
(1)设置会话级模式搜索路径
通过gsql设置数据库dbcourseSelec会话级模式搜索路径为student。
[ouser@openEuler2203 ~]$ gsql -h 192.168.116.147 -p 5432 -U student -W Mar152024@ -d dbcourseselect
gsql ((openGauss 5.0.1 build 33b035fd) compiled at 2023-12-15 19:51:49 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

dbcourseselect=> set search_path to student;--设置会话级搜索路径
SET
dbcourseselect=>
(2)设置用户级搜索路径
设置数据库courseSelect用户级搜索路径为student。
[ouser@openEuler2203 ~]$ gsql -d postgres -p 5432 #通过gsql登录数据库
gsql ((openGauss 5.0.1 build 33b035fd) compiled at 2023-12-15 19:51:49 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=# alter user student set search_path to student;--设置用户级搜索路径
ALTER ROLE
(3)设置数据库级搜索路径
通过gsql设置数据库courseSelect数据库级搜索路径为student。
openGauss=# alter database dbcourseselect set search_path to student;--设置数据库级的搜索路径
ALTER DATABASE
(4)查看数据库模式的搜索路径
通过DataStudio查看当前数据库courseSelect模式的搜索路径。
--查看当前数据库courseSelect模式的搜索路径
show search_path;

4-1.png

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。