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

简介

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

内容描述

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

前置条件

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

实验环境说明

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

设备明细表

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

实验概览

a588b8ddb67ab6f3e1738b79176385f1.jpeg

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值