当前位置: 首页 > news >正文

第12天 | openGauss逻辑结构:模式管理

接着昨天继续学习openGauss,今天是第12天了。今天学习内容是openGauss逻辑结构:模式管理。
老规矩,先登陆墨天轮为我准备的实训实验室

root@modb:~# su - omm
omm@modb:~$ gsql -r

–执行如下的命令和SQL语句,创建表空间enmtbs和数据库enmdb:

omm=# CREATE TABLESPACE enmtbs RELATIVE LOCATION 'tablespace/enmtbs1';
CREATE TABLESPACE
omm=# CREATE DATABASE enmdb WITH TABLESPACE = enmtbs;
CREATE DATABASE

–创建数据库用户user1的同时,会在系统的omm数据库中创建一个与这个用户名同名的模式user1。

omm=# CREATE USER user1 IDENTIFIED BY 'kunpeng@1234';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
omm=# ALTER USER user1  SYSADMIN;
ALTER ROLE
作业要求
1.创建一个名为testsm、testsm1的模式
omm=# create schema testsm;
CREATE SCHEMA
omm=# create schema testsm1;
omm=# CREATE SCHEMA
2.创建一个用户john, 并将testsm的owner修改为john,且修改owner前后分别使用\dn+查看模式信息
omm=# CREATE USER john IDENTIFIED BY 'john@1234';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
omm=# ALTER USER user1  SYSADMIN;
ALTER ROLE

修改前记录

omm=# \dnList of schemasName       | Owner 
-----------------+-------blockchain      | ommcstore          | ommdb4ai           | ommdbe_perf        | ommdbe_pldebugger  | ommdbe_pldeveloper | ommjohn            | johnpkg_service     | ommpublic          | ommsnapshot        | ommsqladvisor      | ommtestsm          | ommtestsm1         | ommuser1           | user1
(14 rows)

将testsm的owner修改为john,并查看变化后的模式

omm=# ALTER SCHEMA testsm OWNER TO john;
ALTER SCHEMA
omm=# \dnList of schemasName       | Owner 
-----------------+-------blockchain      | ommcstore          | ommdb4ai           | ommdbe_perf        | ommdbe_pldebugger  | ommdbe_pldeveloper | ommjohn            | johnpkg_service     | ommpublic          | ommsnapshot        | ommsqladvisor      | ommtestsm          | johntestsm1         | ommuser1           | user1
(14 rows)
3.重命名testsm为testsm2
omm=# alter schema testsm rename to testsm2;
omm=# ALTER SCHEMA
omm=# \dnList of schemasName       | Owner 
-----------------+-------blockchain      | ommcstore          | ommdb4ai           | ommdbe_perf        | ommdbe_pldebugger  | ommdbe_pldeveloper | ommjohn            | johnpkg_service     | ommpublic          | ommsnapshot        | ommsqladvisor      | ommtestsm1         | ommtestsm2         | johnuser1           | user1
(14 rows)
4.在模式testsm1中建表t1、插入记录和查询记录
omm=# create table testsm1.t1(product_id INTEGER,product_name Char(20),category Char(10));
CREATE TABLE
omm-# insert into testsm1.t1(product_id,product_name,category) values
(1700,'wait interface','Books'),
omm-# (1666,'harry potter','toys');
INSERT 0 3
select * from testsm1.t1;
omm=# select * from testsm1.t1;product_id |     product_name     |  category  
------------+----------------------+------------1601 | lamaze               | toys      1700 | wait interface       | Books     1666 | harry potter         | toys      1601 | lamaze               | toys      1700 | wait interface       | Books     
omm=#        1666 | harry potter         | toys   

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

omm=#  show SEARCH_PATH;search_path   
----------------"$user",public
(1 row)omm=# SET SEARCH_PATH TO testsm1;
SET
omm=# show SEARCH_PATH;search_path 
-------------testsm1

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

omm=# ALTER DATABASE enmdb SET SEARCH_PATH TO testsm1;
ALTER DATABASE
omm=# \c enmdb user1
Password for user user1: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "enmdb" as user "user1".
enmdb=> show SEARCH_PATH;search_path 
-------------testsm1

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

enmdb=> ALTER USER user1 SET SEARCH_PATH TO schm2;
ALTER ROLE
enmdb=> \q
omm@modb:~$ gsql -d enmdb -U user1 -W kunpeng@1234 -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.enmdb=> show SEARCH_PATH;search_path 
-------------schm2
(1 row)
总结

今天练习比较深了点,课后还需要多多练习。

http://www.dtcms.com/a/292324.html

相关文章:

  • Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358)
  • 25. K 个一组翻转链表
  • Odoo:免费开源的金属制品行业ERP管理软件
  • React 面试题库
  • 写个 flask todo app,简洁,实用
  • calibrate_hand_eye (CalibDataID, Errors)
  • 2025年远程桌面软件深度评测:ToDesk、向日葵、TeamViewer全方位对比分析
  • C++学习——内联、C++11中的auto、for循环、nullptr
  • Windows Cmake Vs2017/2010 编译安装Protobuf
  • 【计算机网络】第五章:传输层
  • 双向链表详解及实现
  • 解锁高品质音频体验:探索音频质量评估与测试的科学之道
  • Vibe Coding:人工智能 + 语音 = 新型开发者工作流
  • Thingsboard是什么?跟LoRaWAN 是什么关系?
  • 图像基础:从像素到 OpenCV 的入门指南
  • 【加解密与C】Rot系列(四)RotSpecial
  • 【windows修复】解决windows10,没有【相机] 功能问题
  • 2025易支付插件/度小满/拉卡拉缴费易/嘉联/海科码钱/富友 支付量身定制的易支付插件优化方案
  • Jupyter Notebook |使用清华源下载安装
  • Final_基于时序数据的回归预测
  • ABP VNext + FluentMigrator:数据库迁移管理
  • AI智能体“上下文工程”实践:来自 Manus 项目的经验总结
  • 【ArcGIS Pro】设置临时存储文件夹(计算缓存数据存放位置)
  • RedisJSON 指令精讲JSON.STRLEN 高效统计字符串长度
  • OpenMVG OpenMVS 安装全流程常见问题与解决方法总结
  • almalinux9.6系统-基础环境准备
  • 【大气反演模型CIF第二期】通过 Docker 容器快速部署和运行 CIF 系统
  • 基于eBPF的Kubernetes网络故障自愈系统设计与实现
  • 33、基于JDK17的GC调优策略
  • Hyper-V虚拟化平台GPU分区和GPU半虚拟化技术比较及应用建议