如何在PostgreSQL中创建数据库?使用三种方法

2021年11月19日01:38:57 发表评论 1,781 次浏览

PostgreSQL创建数据库的方法介绍

PostgreSQL 是一个开源的高级数据库管理系统,支持关系(SQL) 和非关系(JSON) 查询。 在 PostgreSQL 中,重点主要是可扩展性和 SQL 合规性,同时在事务中维护ACID属性(原子性、一致性、隔离性、持久性)。 在本教程中,你将学习如何使用三种不同的方法在 PostgreSQL 中创建数据库,包括对应的PostgreSQL创建数据库示例。 先决条件
  • 安装并设置 PostgreSQL
  • 管理员权限

通过 pgAdmin 在 PostgreSQL 中创建数据库

PostgreSQL如何创建数据库?要使用 pgAdmin创建数据库,请按照下列步骤操作: 步骤 1:打开 pgAdmin 并输入你的密码以连接到数据库服务器。
如何在PostgreSQL中创建数据库?使用三种方法
第 2 步:在浏览器部分,展开服务器,然后展开PostgreSQL项目。右键单击数据库项。单击创建数据库...
如何在PostgreSQL中创建数据库?使用三种方法
第 3 步:PostgreSQL创建数据库的方法:弹出一个新窗口,你需要在其中指定数据库名称,必要时添加注释并单击“保存”
如何在PostgreSQL中创建数据库?使用三种方法
数据库出现在数据库对象树中。 pgAdmin 窗口的右侧部分包含显示数据库统计信息、用于创建数据库的 SQL 命令、任何依赖项等的选项卡。 注意:向数据库中插入数据时要注意数据类型。阅读我们的文章以了解MySQL 中的不同数据类型。

通过 CREATE DATABASE 在 PostgreSQL 中创建数据库

PostgreSQL如何创建数据库?创建 PostrgreSQL 数据库的另一种方法是使用CREATE DATABASE命令。 按照以下步骤创建数据库: 步骤 1:打开SQL Shell (psql)应用程序。
如何在PostgreSQL中创建数据库?使用三种方法
第 2 步:按四次ENTER连接到数据库服务器。如果询问,请输入你的主密码。如果你没有设置密码,请再次按ENTER进行连接。
如何在PostgreSQL中创建数据库?使用三种方法
第 3 步:使用以下语法创建新数据库:
CREATE DATABASE [database_name]
代替[database_name],输入数据库的名称。请确保输入唯一名称,因为使用现有数据库名称会导致错误。 例如:
如何在PostgreSQL中创建数据库?使用三种方法
PostgreSQL创建数据库的方法:创建一个不指定任何参数的数据库从默认模板数据库中获取参数。请参阅下一节中的可用参数。 第 4 步:使用以下命令列出 PostgreSQL 中的所有数据库:
\l
如何在PostgreSQL中创建数据库?使用三种方法
输出显示可用数据库及其特征的列表。

PostgreSQL创建数据库示例:创建数据库参数

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

通过 createdb 命令在 PostgreSQL 中创建数据库

PostgreSQL如何创建数据库?该createdb命令是在 PostgreSQL 中创建数据库的第三种方法。createdbCREATE DATABASE命令之间的唯一区别是用户createdb直接从命令行运行并一次性向数据库中添加注释。 PostgreSQL创建数据库的方法:要使用该createdb命令创建数据库,请使用以下语法:
createdb [argument] [database_name [comment]]
这些参数将在下一节中讨论。 注意:在连接到 template1 数据库时从 psqlcreatedb内部运行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 在连接到数据库之前发出密码提示。
例如:
如何在PostgreSQL中创建数据库?使用三种方法
在这里,我们使用默认管理员用户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 数据类型很有帮助。
木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: