PostgreSQL CREATE DATABASE 创建数据库
本文介绍了如何在 PostgreSQL 中创建新的数据库。
数据库是表的容器,一个数据库中可以包含多个表。要想在 PostgreSQL 存储数据,你首先要创建一个数据库。
PostgreSQL 允许您使用 CREATE DATABASE 语句创建一个新的数据库。
PostgreSQL CREATE DATABASE 语法
要在 PostgreSQL 服务器上创建一个数据库,您必须是超级用户或者具有 CREATEDB 权限。
请按照如下语法使用 CREATE DATABASE 语句:
CREATE DATABASE db_name
[ [ WITH ] [ OWNER [=] user_name ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LOCALE [=] locale ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace_name ]
[ ALLOW_CONNECTIONS [=] allowconn ]
[ CONNECTION LIMIT [=] connlimit ]
[ IS_TEMPLATE [=] istemplate ] ]
看起来这是一个很复杂的语句,但是最常用的是下面的一行语句:
CREATE DATABASE db_name;
您可以是按照任意的顺序使用可选的选项。以下是对其中的参数的说明:
db_name-
要创建的数据库的名字。
user_name-
将拥有新数据库的用户的角色名称。您可以使用
DEFAULT表示执行命令的用户。 template-
用于创建新数据库的模板名称。您可以使用
DEFAULT表示默认模板的模板名称 (template1)。 encoding-
要在新数据库中使用的字符集编码。您可以指定一个字符串常量(例如,
'SQL_ASCII'),或者一个整数编码号,或者DEFAULT(模板数据库的编码)。点击这里以查看 PostgreSQL 支持的字符集。 locale-
这是一个设置
LC_COLLATE和LC_CTYPE的快捷方式。如果指定此项,则不能指定其中任何一个参数。 lc_collate-
要在新数据库中使用的整理顺序 (
LC_COLLATE)。这会影响应用于字符串的排序顺序。 lc_ctype-
要在新数据库中使用的字符分类 (
LC_CTYPE)。这会影响字符的分类,例如小写、大写和数字。 tablespace_name-
将与新数据库关联的表空间的名字。您可以使用
DEFAULT以使用模板数据库的表空间的名称。 allowconn-
是否允许连接到此数据库。如果为
false,则没有人可以连接到该数据库。默认值为true,允许连接。 connlimit-
连接数限制。
-1(默认)表示没有限制。 istemplate-
是否为模版数据库。 如果为
true,则任何具有CREATEDB权限的用户都可以克隆此数据库;如果为false(默认值),则只有超级用户或数据库所有者可以克隆它。
PostgreSQL 创建数据库实例
在本实例中,我们将在 psql 工具中创建一个数据库 testdb。
-
首先,请使用您自己的用户登录 PostgreSQL 服务器:
[~] psql -U postgres psql (14.4) Type "help" for help. -
其次,使用默认的选项创建
testdb数据库:CREATE DATABASE testdb;CREATE DATABASE如果您输入了一个已经存在的数据库名称, PostgreSQL 将返回一个错误:
ERROR: database "testdb" already exists。 -
最后,使用
\c命令切换到刚刚创建的testdb数据库:\c testdb;You are now connected to database "testdb" as user "postgres".
通常情况下,创建数据库是一个简单的操作。
结论
PostgreSQL CREATE DATABASE 语句用于在 PostgreSQL 服务器上创建一个新的数据库。