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

openGauss每日一练第12天--openGauss数据库逻辑结构模式管理

原创 2022-12-05
136

本次课程目的是学习opengauss数据库逻辑结构–模式的管理,openGauss的模式是对数据库做一个逻辑分割。
所有的数据库对象都建立在模式下面。openGauss的模式和用户是弱绑定的,所谓的弱绑定是指虽然创建用户的同时会自动创建一个同名模式,但用户也可以单独创建模式,并且为用户指定其他的模式。
在一个数据库中,可以有多个模式。模式可以把一组对象组织在一起。
这样组织机构有多少个应用,我们可以将数据库对象组织成几个模式;组织机构有几个部门,也可以为该部门创建单独的模式。
默认情况下,用户将访问数据库的public模式。
通过对模式的增删改查操作进一步了解

课后练习:
模式管理包括为数据库创建模式、删除模式、查看和设置模式的搜索路径、查看模式中的信息。

1.创建一个名为testsm、testsm1的模式

omm=# create schema testsm; CREATE SCHEMA omm=# create schema testsm1; CREATE SCHEMA omm=# \dn List of schemas Name | Owner -----------------+------- blockchain | omm cstore | omm db4ai | omm dbe_perf | omm dbe_pldebugger | omm dbe_pldeveloper | omm dbe_sql_util | omm pkg_service | omm public | omm snapshot | omm sqladvisor | omm testsm | omm testsm1 | omm user1 | user1 (14 rows)

2.创建一个用户john, 并将testsm的owner修改为john,且修改owner前后分别使用\dn+查看模式信息

omm=# CREATE USER john IDENTIFIED BY 'kunpeng@1234'; CREATE ROLE omm=# ALTER USER john SYSADMIN; ALTER ROLE omm=# omm=# \dn List of schemas Name | Owner -----------------+------- blockchain | omm cstore | omm db4ai | omm dbe_perf | omm dbe_pldebugger | omm dbe_pldeveloper | omm dbe_sql_util | omm john | john pkg_service | omm public | omm snapshot | omm sqladvisor | omm testsm | omm testsm1 | omm user1 | user1 (15 rows) omm=# ALTER SCHEMA testsm OWNER TO john; ALTER SCHEMA omm=# \dn List of schemas Name | Owner -----------------+------- blockchain | omm cstore | omm db4ai | omm dbe_perf | omm dbe_pldebugger | omm dbe_pldeveloper | omm dbe_sql_util | omm john | john pkg_service | omm public | omm snapshot | omm sqladvisor | omm testsm | john testsm1 | omm user1 | user1 (15 rows)

3.重命名testsm为testsm1

omm=# drop schema testsm1; DROP SCHEMA omm=# alter schema testsm rename to testsm1; ALTER SCHEMA omm=# omm=# omm=# omm=# \dn List of schemas Name | Owner -----------------+------- blockchain | omm cstore | omm db4ai | omm dbe_perf | omm dbe_pldebugger | omm dbe_pldeveloper | omm dbe_sql_util | omm john | john pkg_service | omm public | omm snapshot | omm sqladvisor | omm testsm1 | john user1 | user1 (14 rows)

4.在模式testsm1中建表t1、插入记录和查询记录

omm=# create table testsm1.t1(c1 char(10)); CREATE TABLE omm=# omm=# insert into testsm1.t1 values('a'),('b'); INSERT 0 2 omm=# select * from testsm1.t1; c1 ------------ a b (2 rows)

5.在会话级设置模式搜索顺序

omm=# SET SEARCH_PATH TO testsm1; SET omm=# show SEARCH_PATH; search_path ------------- testsm1 (1 row) omm=# \d List of relations Schema | Name | Type | Owner | Storage ---------+------+-------+-------+---------------------------------- testsm1 | t1 | table | omm | {orientation=row,compression=no} (1 row)

6.在数据库级设置模式搜索顺序

omm=# ALTER DATABASE omm SET SEARCH_PATH TO testsm1; ALTER DATABASE omm=# \q [omm@ogca1 ~]$ gsql -r -p15400 gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:24 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. omm=# show search_path; search_path ------------- testsm1 (1 row)

7.在用户级设置模式搜索顺序

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

评论