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

openGauss 每日一练第 13 天|openGauss 逻辑结构:表管理 1

原创 代野(Tank) 2022-12-06
1275

第 13 天学习打卡,本节课程学习目标是掌握 openGauss 表的创建、搜索路径和访问方法等。作业实操内容如下。

作业

  1. 准备工作
--创建表空间enmtbs、数据库enmdb、用户user1,并授予用户user1 SYSADMIN权限: su - omm gsql -r CREATE TABLESPACE enmtbs RELATIVE LOCATION 'tablespace/enmtbs1'; CREATE DATABASE enmdb WITH TABLESPACE = enmtbs; CREATE USER user1 IDENTIFIED BY 'kunpeng@1234'; ALTER USER user1 SYSADMIN; \q --以数据库用户user1的身份,连接到刚刚创建的数据库enmdb: gsql -d enmdb -U user1 -W kunpeng@1234 -r --执行下面的SQL语句,创建enmschm1、enmschm2模式 create schema enmschm1; create schema enmschm2;
  1. 创建一个表(默认,不指定模式),查看该表在那个模式下
enmdb=> show SEARCH_PATH; search_path ---------------- "$user",public (1 row) enmdb=> create table testtable(col varchar(100)); CREATE TABLE enmdb=> insert into testtable values('Hello from testtable!'); INSERT 0 1 enmdb=> select * from testtable; col ----------------------- Hello from testtable! (1 row) enmdb=> select table_catalog,table_schema,table_name,table_type from information_schema.tables where table_schema = 'public'; table_catalog | table_schema | table_name | table_type ---------------+--------------+------------+------------ enmdb | public | testtable | BASE TABLE (1 row) enmdb=>
  1. 使用一个用户连接到 enmdb 数据库,测试该用户可以访问不同模式中的表
enmdb=> create table enmschm2.testtable(col1 char(100)); CREATE TABLE enmdb=> insert into enmschm2.testtable values('Hello from testtable IN SCHEMA enmschm2!'); INSERT 0 1 enmdb=> select * from enmschm2.testtable; col1 ------------------------------------------------------------------------------------------------------ Hello from testtable IN SCHEMA enmschm2! (1 row) enmdb=> 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=> select * from testtable; col ----------------------- Hello from testtable! (1 row) enmdb=> select * from enmschm2.testtable; col1 ------------------------------------------------------------------------------------------------------ Hello from testtable IN SCHEMA enmschm2! (1 row) enmdb=>
  1. 在会话级设置模式搜索路径为:模式 enmschm1,使用 SchemaName.TableName 的表标识方法访问表(创建表、插入数据和查询表中数据)
enmdb=> SET SEARCH_PATH TO enmschm1; SET enmdb=> show SEARCH_PATH; enmdb=> search_path ------------- enmschm1 (1 row) enmdb=> insert into enmschm2.testtable values('Hello from testtable IN SCHEMA enmschm2!'); enmdb=> INSERT 0 1 enmdb=> select * from enmschm2.testtable; col1 ------------------------------------------------------------------------------------------------------ Hello from testtable IN SCHEMA enmschm2! Hello from testtable IN SCHEMA enmschm2! (2 rows) enmdb=>

总结

本节课通过三到四个场景操作了创建、搜索路径和访问方法,具体命令在前面课程中有所提及,过程中,掌握搜索路径+模式即可。

历史打卡记录:

openGauss 每日一练第 1 天|openGauss 数据库状态查看

openGauss 每日一练第 2 天|学习 openGauss 客户端工具 gsql 的使用

openGauss 每日一练第 3 天|openGauss 中一个数据库集簇对应多个数据库

openGauss 每日一练第 4 天|openGauss 中一个数据库可以被多个用户访问

openGauss 每日一练第 5 天|openGauss 中一个用户可以访问多个数据库

openGauss 每日一练第 6 天|openGauss 中用户一次只能连接到一个数据库

openGauss 每日一练第 7 天|openGauss 中一个数据库中可以创建多个模式

openGauss 每日一练第 8 天|openGauss 中一个数据库可以存储在多个表空间中

openGauss 每日一练第 9 天|openGauss 中一个表空间可以存储多个数据库

openGauss 每日一练第 10 天|openGauss 逻辑结构:表空间管理

openGauss 每日一练第 11 天|openGauss 逻辑结构:数据库管理

openGauss 每日一练第 12 天|openGauss 逻辑结构:模式管理

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

评论