PostgreSQL创建数据库的方法介绍
PostgreSQL 是一个开源的高级数据库管理系统,支持
关系(SQL) 和
非关系(JSON) 查询。
在 PostgreSQL 中,重点主要是可扩展性和 SQL 合规性,同时在事务中维护
ACID属性(原子性、一致性、隔离性、持久性)。
在本教程中,你将学习如何使用三种不同的方法在 PostgreSQL 中创建数据库,包括对应的PostgreSQL创建数据库示例。
先决条件
通过 pgAdmin 在 PostgreSQL 中创建数据库
PostgreSQL如何创建数据库?要使用 pgAdmin创建数据库,请按照下列步骤操作:
步骤 1:打开 pgAdmin 并输入你的密码以连接到数据库服务器。
第 2 步:在浏览器部分,展开
服务器,然后展开
PostgreSQL项目。右键单击
数据库项。单击
创建和
数据库...
第 3 步:PostgreSQL创建数据库的方法:弹出一个新窗口,你需要在其中指定数据库名称,必要时添加注释并单击“
保存”。
数据库出现在
数据库对象树中。
pgAdmin 窗口的右侧部分包含显示数据库统计信息、用于创建数据库的 SQL 命令、任何依赖项等的选项卡。
注意:向数据库中插入数据时要注意数据类型。阅读我们的文章以了解MySQL 中的不同数据类型。
通过 CREATE DATABASE 在 PostgreSQL 中创建数据库
PostgreSQL如何创建数据库?创建 PostrgreSQL 数据库的另一种方法是使用
CREATE DATABASE命令。
按照以下步骤创建数据库:
步骤 1:打开
SQL Shell (psql)应用程序。
第 2 步:按四次
ENTER连接到数据库服务器。如果询问,请输入你的主密码。如果你没有设置密码,请再次按
ENTER进行连接。
第 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 数据类型很有帮助。