PostgreSQL创建数据库的方法介绍
PostgreSQL 是一个开源的高级数据库管理系统,支持
关系(SQL) 和
非关系(JSON) 查询。
在 PostgreSQL 中,重点主要是可扩展性和 SQL 合规性,同时在事务中维护
ACID属性(原子性、一致性、隔离性、持久性)。
在本教程中,你将学习如何使用三种不同的方法在 PostgreSQL 中创建数据库,包括对应的PostgreSQL创建数据库示例。
先决条件
通过 pgAdmin 在 PostgreSQL 中创建数据库
PostgreSQL如何创建数据库?要使用 pgAdmin创建数据库,请按照下列步骤操作:
步骤 1:打开 pgAdmin 并输入你的密码以连接到数据库服务器。
 第 2 步
第 2 步:在浏览器部分,展开
服务器,然后展开
PostgreSQL项目。右键单击
数据库项。单击
创建和
数据库...
 第 3 步
第 3 步:PostgreSQL创建数据库的方法:弹出一个新窗口,你需要在其中指定数据库名称,必要时添加注释并单击“
保存”。

数据库出现在
数据库对象树中。
pgAdmin 窗口的右侧部分包含显示数据库统计信息、用于创建数据库的 SQL 命令、任何依赖项等的选项卡。
注意:向数据库中插入数据时要注意数据类型。阅读我们的文章以了解MySQL 中的不同数据类型。
通过 CREATE DATABASE 在 PostgreSQL 中创建数据库
PostgreSQL如何创建数据库?创建 PostrgreSQL 数据库的另一种方法是使用
CREATE DATABASE命令。
按照以下步骤创建数据库:
步骤 1:打开
SQL Shell (psql)应用程序。
 第 2 步
第 2 步:按四次
ENTER连接到数据库服务器。如果询问,请输入你的主密码。如果你没有设置密码,请再次按
ENTER进行连接。
 第 3 步
第 3 步:使用以下语法创建新数据库:
CREATE DATABASE [database_name]
代替
[database_name],输入数据库的名称。请确保输入唯一名称,因为使用现有数据库名称会导致错误。
例如:

PostgreSQL创建数据库的方法:创建一个不指定任何参数的数据库从默认模板数据库中获取参数。请参阅下一节中的可用参数。
第 4 步:使用以下命令列出 PostgreSQL 中的所有数据库:
\l

输出显示可用数据库及其特征的列表。
PostgreSQL创建数据库示例:创建数据库参数
创建数据库的可用参数有:
该
OWNER参数分配数据库所有者角色。省略
OWNER参数意味着数据库所有者是用于执行
CREATE DATABASE语句的角色。
该
TEMPLATE参数允许你指定从中创建新数据库的模板数据库。省略
TEMPLATE参数将
template1设置为默认模板数据库。
该
ENCODING参数确定新数据库中的字符集编码。
该
LC_COLLATE参数指定新数据库的整理顺序。此参数控制
ORDER BY子句中的字符串排序顺序。当使用包含
特殊字符的语言环境时,效果是可见的。
省略
LC_COLLATE参数会从模板数据库中获取设置。
该
LC_CTYPE参数指定新数据库中使用的字符分类。字符分类包括小写、大写和数字。省略
LC_CTYPE参数采用模板数据库中的默认设置。
 	- [TABLESPACE = tablespace_name]
使用该
TABLESPACE参数为新数据库指定表空间名称。省略
TABLESPACE参数采用模板数据库的表空间名称。
 	- [ALLOW_CONNECTIONS = true | false]
该
ALLOW_CONNECTIONS参数可以是
TRUE或
FALSE。将值指定为
FALSE可防止你连接到数据库。
 	- [CONNECTION LIMIT = max_concurrent_connections]
该
CONNECTION LIMIT参数允许你设置到 PostgreSQL 数据库的最大同时连接数。默认值为
-1,表示无限连接。
 	- [IS_TEMPLATE = true | false ]
将
IS_TEMPLATE参数设置为
TRUE或
FALSE。设置
IS_TEMPLATE为
TRUE 允许任何具有
CREATEDB 克隆数据库权限的用户。否则,只有超级用户或数据库所有者才能克隆数据库。
要创建带参数的数据库,请
WITH在
CREATE DATABASE语句后添加关键字,然后列出所需的参数。
例如:

此示例显示如何将新数据库设置为使用 UTF-8 字符编码并支持最多 200 个并发连接。
通过 createdb 命令在 PostgreSQL 中创建数据库
PostgreSQL如何创建数据库?该
createdb命令是在 PostgreSQL 中创建数据库的第三种方法。
createdb和
CREATE DATABASE命令之间的唯一区别是用户
createdb直接
从命令行运行并一次性向数据库中添加注释。
PostgreSQL创建数据库的方法:要使用该
createdb命令创建数据库,请使用以下语法:
createdb [argument] [database_name [comment]]
这些参数将在下一节中讨论。
注意:在连接到 template1 数据库时从 psql
createdb内部运行
CREATE DATABASE。除了 postgres 超级用户之外,创建数据库的用户是唯一的 DBA,也是唯一可以删除数据库的用户。
PostgreSQL创建数据库示例:createdb 参数
该
createdb语法参数:
| 范围 | 描述 | 
| [argument] | createdb接受的命令行参数。下一节讨论。 | 
| [database_name] | 设置数据库名称代替 database_name参数。 | 
| [comment] | 与新数据库相关联的可选注释。 | 
 
createdb 命令行参数
可用的
createdb参数是:
| 争论 | 描述 | 
| -D | 指定新数据库的表空间名称。 | 
| -e | 显示 createdb 发送到服务器的命令。 | 
| -E | 指定要在数据库中使用的字符编码。 | 
| -l | 指定要在数据库中使用的语言环境。 | 
| -T | 指定要用作新数据库模板的数据库。 | 
| --help | 显示有关 createdb 命令行参数的帮助页面。 | 
| -h | 显示运行服务器的机器的主机名。 | 
| -p | 设置服务器用于侦听连接的 TCP 端口或本地 Unix 域套接字文件扩展名。 | 
| -U | 指定用于连接的用户名。 | 
| -w | 指示 createdb从不发出密码提示。 | 
| -W | 指示 createdb 在连接到数据库之前发出密码提示。 | 
 
例如:

在这里,我们使用默认管理员用户
postgres创建了一个名为
mydatabase的数据库。我们使用
phoenixnap数据库作为模板,并指示程序不要询问密码。
createdb 命令常见错误
用户在使用
createdb命令时可能会遇到一些常见错误。
请参阅
createdb下面的错误列表:
| 错误 | 描述 | 
| createdb 找不到相关命令。 | 当 PostgreSQL 安装不正确时发生。 createdb 从 PostgreSQL 安装路径运行或将psql.exe路径添加到 PC 高级设置中的系统变量部分。 | 
| 没有这样的文件或目录
服务器是否在本地运行并接受
Unix 域套接字上的连接...? | 当 PostgreSQL 服务器未正确启动或当前未运行时发生。 | 
| 致命:角色“用户名”不存在。 | 当用户 initdb以没有超级用户权限的角色运行时发生。
要修复错误,请使用--superuser 选项创建新用户或登录到默认管理员角色postgres。 | 
| 数据库创建失败:错误:创建数据库的权限被拒绝。 | 在尝试使用没有必要权限的帐户创建数据库时出现。要修复该错误,请向相关角色授予超级用户权限。 | 
 
结论
PostgreSQL如何创建数据库?现在你知道如何使用三种不同的PostgreSQL创建数据库的方法。如果你更喜欢 GUI 环境,请使用 pgAdmin,或者如果你更喜欢运行 SQL 命令,请使用 CLI 或 SQL Shell。
如果你有兴趣了解有关 PostgreSQL 的更多信息,请务必查看如何安装PostgreSQL Workbench、如何将 PostgreSQL 表导出为 CSV、如何检查 PostgreSQL 版本、如何在 Windows 上下载和安装 PostgreSQL或如何使用PostgreSQL SELECT声明。
有关 PostgreSQL 中可用的不同内置数据类型的信息,你可能会发现我们的文章PostgreSQL 数据类型很有帮助。