openGauss数据库开发指导手册(一)

简介

本实验指导书主要目的是为了让读者熟悉并掌握openGauss数据库的基本操作,并通过案例强化学习。

内容描述

本实验指导书先介绍创建管理用户、表及其它数据库对象等openGauss数据库的基本操作,再从学校数据模型的案例入手,进行模拟演练。

前置条件

openGauss数据库开发需要掌握openGauss数据库的基本操作和SQL语法,openGauss数据库支持SQL2003标准语法,数据库基本操作参见附录一。

实验环境说明

  1. 组网说明
    本实验环境为华为云ECS服务器和openGauss数据库。
  2. 设备介绍
    为了满足本实验需要,建议实验环境采用以下配置:
    设备名称、型号与版本的对应关系如下:

设备明细表

设备名称设备型号软件版本数据库openGaussopenGauss 1.1.0操作系统openEuleropenEuler 20.3LTS

实验概览

1 数据库开发实验

1.1 创建和管理用户、表空间和数据库

1.1.1 创建和管理用户

1.1.1.1 创建用户

通过CREATE USER创建的用户,默认具有LOGIN权限;
通过CREATE USER创建用户的同时系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA;其他数据库中,则不自动创建同名的SCHEMA;用户可使用CREATE SCHEMA命令,分别在其他数据库中,为该用户创建同名SCHEMA。
系统管理员在普通用户同名schema下创建的对象,所有者为schema的同名用户(非系统管理员)。
创建用户jim,登录密码为Bigdata@123。

postgres=# CREATE USER jim PASSWORD 'Bigdata@123';
CREATE ROLE

同样的下面语句也可以创建用户。

postgres=# CREATE USER kim IDENTIFIED BY 'Bigdata@123';
CREATE ROLE

如果创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。

postgres=# CREATE USER dim CREATEDB PASSWORD 'Bigdata@123';
CREATE ROLE

1.1.1.2 管理用户

将用户jim的登录密码由Bigdata@123修改为Abcd@123。

postgres=# ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'Bigdata@123';
ALTER ROLE

为用户jim追加CREATEROLE权限。

postgres=# ALTER USER jim CREATEROLE;
ALTER ROLE

将enable_seqscan的值设置为on,设置成功后,在下一会话中生效。

postgres=# ALTER USER jim SET enable_seqscan TO on;
ALTER ROLE

锁定jim帐户。

postgres=# ALTER USER jim ACCOUNT LOCK;
ALTER ROLE

删除用户。

postgres=# DROP USER kim CASCADE;
DROP ROLE
postgres=# DROP USER jim CASCADE;
DROP ROLE
postgres=# DROP USER dim CASCADE;
DROP ROLE

1.1.2 创建和管理表空间

1.1.2.1 创建表空间

步骤 1 执行如下命令创建用户jack。

postgres=# CREATE USER jack IDENTIFIED BY 'Bigdata@123';

当结果显示为如下信息,则表示创建成功。

CREATE ROLE

步骤 2 执行如下命令创建表空间。

postgres=# CREATE TABLESPACE fastspace RELATIVE LOCATION 'tablespace/tablespace_1';

当结果显示为如下信息,则表示创建成功。

CREATE TABLESPACE

其中“fastspace”为新创建的表空间,“数据库节点数据目录/pg_location/tablespace/tablespace_1”是用户拥有读写权限的空目录,如 /gaussdb/data/db1/pg_location/tablespace/tablespace_1 。

步骤 3 数据库系统管理员执行如下命令将“fastspace”表空间的访问权限赋予数据用户jack。

postgres=# GRANT CREATE ON TABLESPACE fastspace TO jack;

当结果显示为如下信息,则表示赋予成功。

GRANT

1.1.2.2 管理表空间

1.1.2.2.1 查询表空间

方式1:检查pg_tablespace系统表。如下命令可查到系统和用户定义的全部表空间。

postgres=# SELECT spcname FROM pg_tablespace;
spcname
------------
pg_default
pg_global
fastspace
(3 rows)

方式2:使用gsql程序的元命令查询表空间。

postgres=# \db
List of tablespaces
Name | Owner | Location
------------+-------+-------------------------
fastspace | omm | tablespace/tablespace_1
pg_default | omm |
pg_global | omm |
(3 rows)

1.1.2.2.2 查询表空间使用率

步骤 1 查询表空间的当前使用情况。

postgres=# SELECT PG_TABLESPACE_SIZE('fastspace');

返回如下信息:

pg_tablespace_size
--------------------
4096
(1 row)

其中4096表示表空间的大小,单位为字节。
步骤 2 计算表空间使用率。
表空间使用率=PG_TABLESPACE_SIZE/表空间所在目录的磁盘大小。

1.1.2.2.3 修改表空间

执行如下命令对表空间fastspace重命名为fspace。

postgres=# ALTER TABLESPACE fastspace RENAME TO fspace;
ALTER TABLESPACE

执行如下命令删除表空间fspace。

postgres=# DROP TABLESPACE fspace;
DROP TABLESPACE

说明:用户必须是表空间的owner或者系统管理员才能删除表空间。

1.1.3 创建和管理数据库

1.1.3.1 创建数据库

步骤 1 使用如下命令创建一个新的表空间tpcds_local。

postgres=# CREATE TABLESPACE tpcds_local RELATIVE LOCATION 'tablespace/tablespace_2';
CREATE TABLESPACE

步骤 2 使用如下命令创建一个新的数据库db_tpcc。

postgres=# CREATE DATABASE db_tpcc WITH TABLESPACE = tpcds_local;
CREATE DATABASE

1.1.3.2 管理数据库

1.1.3.2.1 查看数据库

使用\l元命令查看数据库系统的数据库列表(l表示list)。

postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+-----------+---------+-------+-------------------
db_tpcc | omm | SQL_ASCII | C | C |
postgres | omm | SQL_ASCII | C | C |
template0 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
(4 rows)

使用如下命令通过系统表pg_database查询数据库列表。

postgres=# SELECT datname FROM pg_database;
datname
-----------
template1
db_tpcc
template0
postgres
(4 rows)

1.1.3.2.2 修改数据库

用户可以使用如下命令修改数据库属性(比如:owner、名称和默认的配置属性)。
使用以下命令为数据库设置默认的模式搜索路径。

postgres=# ALTER DATABASE db_tpcc SET search_path TO pa_catalog,public;
ALTER DATABASE

使用如下命令为数据库重新命名。

postgres=# ALTER DATABASE db_tpcc RENAME TO human_tpcds;
ALTER DATABASE

1.1.3.2.3 删除数据库

用户可以使用DROP DATABASE命令删除数据库。此命令删除了数据库中的系统目录,并且删除了带有数据的磁盘上的数据库目录。用户必须是数据库的owner或者系统管理员才能删除数据库。当有人连接数据库时,删除操作会失败。删除数据库时请先连接到其他的数据库。
使用如下命令删除数据库:

postgres=# DROP DATABASE human_tpcds;
DROP DATABASE

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容