前提条件

用户必须拥有数据库创建的权限或者是数据库的系统管理员权限才能创建数据库,赋

予创建数据库的权限参见 7.2 管理用户及权限。

背景信息

初始时,GaussDB 200 包含两个模板数据库 template0、template1,以及一个默认的

用户数据库 postgres。

CREATE DATABASE 实际上通过拷贝模板数据库来创建新数据库。默认情况下,

拷贝 template1。请避免使用客户端或其他手段连接及操作两个模板数据库。

GaussDB 200 允许创建的数据库总数目上限为 128 个。

数据库系统中会有多个数据库,但是客户端程序一次只能连接一个数据库。也不

能在不同的数据库之间相互查询。一个数据库集群中存在多个数据库时,需要通

过 -d 参数指定相应的数据库实例进行连接。

注意事项

如果数据库的编码为 SQL_ASCII(可以通过“show server_encoding”命令查看当前数

据库存储编码),则在创建数据库对象时,如果对象名中含有多字节字符(例如中

文),超过数据库对象名长度限制(63 字节)的时候,数据库将会将最后一个字节

(而不是字符)截断,可能造成出现半个字符的情况。

针对这种情况,请遵循以下条件:

保证数据对象的名称不超过限定长度。

使用例如 utf-8 编码集做为数据库的默认存储编码集(server_encoding)。

不要使用多字节字符做为对象名。

创建的数据库总数目不得超过 128 个。

如果出现因为误操作导致在多字节字符的中间截断而无法删除数据库对象的现

象,请使用截断前的数据库对象名进行删除操作,或将该对象从各个数据库节点

的相应系统表中依次删掉。

操作步骤

步骤 1 创建数据库

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

CREATE TABLESPACE tpcds_local RELATIVE LOCATION 'hdfs_tablespace/hdfs_tablespace_1' ;

CREATE TABLESPACE

2. 使用如下命令创建一个新的数据库 db_tpcds。

CREATE DATABASE db_tpcds WITH TABLESPACE = tpcds_local ;

CREATE DATABASE

说明

数据库名称遵循 SQL 标识符的一般规则。当前角色自动成为此新数据库的所有者。

如果一个数据库系统用于承载相互独立的用户和项目,建议把它们放在不同的数据库里。

如果项目或者用户是相互关联的,并且可以相互使用对方的资源,则应该把它们放在同一个 数据库里,但可以规划在不同的模式中。模式只是一个纯粹的逻辑结构,某个模式的访问权

限由权限系统模块控制。

创建数据库时,若数据库名称长度超过 63 字节,server 端会对数据库名称进行截断,保留前 63 个字节,因此建议数据库名称长度不要超过 63 个字节。

步骤 2 查看数据库

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

\l

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

SELECT datname FROM pg_database;

步骤 3 修改数据库

用户可以使用如下命令修改数据库属性(比如:owner、名称和默认的配置属性)。

使用以下命令为数据库设置默认的模式搜索路径。

ALTER DATABASE db_tpcds SET search_path TO pa_catalog,public ;

ALTER DATABASE

使用如下命令修改数据库表空间。

ALTER DATABASE db_tpcds SET TABLESPACE tpcds ;

ALTER DATABASE

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

ALTER DATABASE db_tpcds RENAME TO human_tpcds ;

ALTER DATABASE

步骤 4 删除数据库

用户可以使用 DROP DATABASE 命令删除数据库。这个命令删除了数据库中的系统目

录,并且删除了带有数据的磁盘上的数据库目录。用户必须是数据库的 owner 或者系统

管理员才能删除数据库。当有人连接数据库时,删除操作会失败。删除数据库时请先

连接到其他的数据库。

使用如下命令删除数据库:

DROP DATABASE human_tpcds ;

DROP DATABASE

更多推荐

高斯数据库与mysql_高斯数据库 (gaussDB) - 创建和管理数据库