openGauss数据库模式管理
一、数据库模式
一个数据库中可以建立多个模式。模式就是数据库对象的集合,可以定义实验内容模式包含的数据库对象(基本表、视图、索引、触发器、存储过程、函数和包等)。
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;
二、模式管理实验
- 查看数据库模式
以数据库管理员身份通登录数据库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;
- 点赞
- 收藏
- 关注作者
评论(0)