掌握Postgres:使用Adminer创建和管理数据库

掌握Postgres:使用Adminer创建和管理数据库

Postgres 又称 PostgreSQL,是对象关系数据库管理的基石。经过数十年的发展,Postgres 已成为可靠、灵活、高性能的数据库。

本实践指南探讨了如何在 Postgres 中创建数据库、表和删除数据库。此外,它还展示了如何使用数据库管理工具(如 Adminer)完成相同的任务。

Postgres 入门

首先,确保系统中已安装 Postgres。如果没有,请下载必要的文件并按照安装说明进行操作。

请记住,这里展示的命令是在 macOS 上演示的,但它们在任何操作系统上都能无缝运行。

Postgres 安装完成后,在终端中输入此命令,以验证一切运行正常:

postgres -V

该命令将返回 Postgres 安装的版本号:

Postgres 版本号

Postgres 版本号。

如何连接 PostgreSQL 数据库服务器

您已经在系统上安装了 Postgres,并准备创建数据库。但如何访问数据库呢?这就是 Postgres 交互式终端(俗称 psql)的用武之地。Psql 是 Postgres 基于终端的前端,允许你向 Postgres 发出查询,然后查看查询结果。

在安装过程中,Postgres 会在操作系统(OS)上创建一个默认超级用户,该用户拥有数据库的最终访问权限。您可以使用此命令以默认超级用户身份登录 psql 终端:

psql postgres

运行这条命令后,你应该会看到终端变成 postgres=#,表明你已经以默认超级用户身份登录。

使用 psql 的最大优势之一是元命令。通过这些强大的工具,你可以执行数据库管理任务,如连接数据库或显示表格,而无需知道确切的 SQL 命令。

要在 psql 中使用元命令,请以反斜杠 ( \ ) 开头,然后在后面加上命令。下面是几个例子:

  • \c <database-name> — 连接到特定的数据库。
  • \l — 列出服务器上的所有数据库。
  • \dt — 显示数据库中的所有表。

如何创建 Postgres 数据库

在使用数据库时,一个好的做法是遵循最小权限原则,创建一个具有特定权限的新用户。不过,在本指南中,为了简单起见,我们还是使用默认的超级用户来创建和管理数据库。

首先,执行以下元命令,列出 Postgres 服务器上的所有用户:

\du

如果没有添加任何新用户,则只能看到默认超级用户:

本地 Postgres 服务器上的用户

本地 Postgres 服务器上的用户。

默认超级用户可能显示为 Postgres 或操作系统用户名,具体取决于系统配置。

默认情况下,超级用户没有密码。不过,为了以后管理数据库,可以使用此命令设置密码:

\password <superuser-name>

根据提示输入密码并确认。现在,你可以开始在 Postgres 服务器上创建数据库了。创建数据库的语法是 CREATE DATABASE <database-name>

让我们先创建一个名为 sales 的数据库:

CREATE DATABASE sales;

数据库创建成功后会出现以下内容:

创建 Postgres 数据库

创建 Postgres 数据库。

现在,使用这些命令再创建两个数据库:customersemployees

CREATE DATABASE customers;
CREATE DATABASE employees;

现在,您已经在本地 Postgres 服务器上建立了三个数据库。要列出创建的所有数据库,请使用这个元命令:

\l

本地 Postgres 服务器上的数据库

本地 Postgres 服务器上的数据库。

这是您目前创建的三个数据库!你可以忽略图片中的其他数据库,因为这些数据库默认是安装 Postgres 时自带的。

现在,你可以连接到一个特定的数据库。连接任何数据库的元命令是 \c <database-name>

运行以下命令连接 sales 数据库:

\c sales

终端中应出现以下信息:

正在连接数据库

正在连接数据库。

连接到数据库后,可以使用相同的命令轻松切换到服务器上的另一个数据库。因此,可以从 sales 数据库运行以下命令连接到 customers 数据库:

\c customers

创建表格

首先,您需要创建表格,为数据库填充数据。在 Postgres 中创建表格的语法结构如下:

CREATE TABLE <table-name> (
<column1-name> <column1-datatype> <column1-constraint>,
<column2-name> <column2-datatype> <column2-constraint>,
<column3-name> <column3-datatype> <column3-constraint>,
…
…
<columnN-name> <columnN-datatype> <columnN-constraint>
);

首先连接 sales 数据库。

\c sales

接下来,创建包含三个不能为空的列的 products 表: product_idproduct_namequantity_sold

CREATE TABLE products(
Product_id			INT     NOT NULL,
Product_name		TEXT    NOT NULL,
Quantity_sold		   INT     NOT NULL
);

如果操作成功,您将看到以下输出:

在数据库中创建表

在数据库中创建表。

接下来,使用下面的元命令验证是否已成功创建 products 表:

\dt

该命令列出了数据库中的所有表,在本例中是一个表。由于您连接的是 sales 数据库,因此应该会看到以下输出:

销售数据库中的表

销售数据库中的表。

接下来,在 employees 数据库中创建两个表。第一个表将列出工资,第二个表将列出地址。要创建这些表,请运行以下命令:

\c employees
CREATE TABLE salary(
Employee_id		INT     NOT NULL,
Employee_name		TEXT    NOT NULL,
Employee_salary		INT     NOT NULL
);
CREATE TABLE address(
Employee_id		INT     NOT NULL,
Employee_country		TEXT    NOT NULL,
Employee_zipcode		INT     NOT NULL
);

最后,运行 \dt 元命令确认已创建这些表。这是你应该看到的输出结果:

雇员数据库中的表

雇员数据库中的表。

如何删除 Postgres 数据库

删除数据库和创建数据库一样简单。删除数据库的语法是 DROP DATABASE <database-name>;

删除数据库不需要连接到特定的数据库。因此,如果要删除 customers 数据库,无论连接到哪个数据库,都可以运行这条命令:

DROP DATABASE customers;

删除成功后,您将看到此屏幕:

删除 Postgres 数据库

删除 Postgres 数据库。

使用 \l 元命令列出本地 Postgres 服务器上的数据库,确认 customers 数据库已不存在。

列出本地 Postgres 服务器上的数据库

列出本地 Postgres 服务器上的数据库。

使用 Adminer 处理 Postgres 数据库操作

至此,您已经通过命令行创建数据库、创建表格和删除数据库,学会了 Postgres 的基本操作。

然而,命令行可能会让人望而生畏,使用起来也很乏味。这时,像 Adminer 这样的数据库管理工具就能帮上忙。您可以通过 Adminer 的图形用户界面执行上述所有数据库操作。

您还需要下载 Adminer PHP 文件,以便使用 Adminer 管理数据库。打开终端,启动运行 PHP 文件的内置网络服务器,并导航到放置 Adminer PHP 文件的位置:

cd path/to/Adminer php file

接下来,使用以下命令启动网络服务器:

php -S 127.0.0.1:8000

您就可以在网络浏览器上使用 Adminer 用户界面了。在浏览器中输入以下地址: http://localhost:8000/<your-Adminer-php-file.php>

注:在 URL 栏输入 Adminer PHP 文件名时,确保包含 .php 文件扩展名。

您将在浏览器中看到 Adminer 用户界面(UI):

Adminer 主页用户界面

Adminer 主页用户界面。

要输入本地 Postgres 服务器,请按照以下说明填写本页面的字段:

  1. System 字段中选择 PostgreSQL
  2. Server 应预填为 localhost。
  3. 对于 Username,键入超级用户名,可以是 “postgres”,也可以是计算机操作系统的用户名。
  4. 对于 Password,键入在 “Create Databases” 部分为超级用户设置的密码。
  5. Database 字段留空。

验证成功后,你将看到之前创建的所有数据库列表,如下图所示。如果使用的是 Windows 操作系统,可能会遇到 “None of the supported PHP extensions (PgSQL, PDO_PgSQL) is available” 的错误。如果出现这种情况,请编辑 php.ini 文件并启用这些扩展。

在 Adminer 上查看 Postgres 数据库

在 Adminer 上查看 Postgres 数据库。

要创建新数据库,请单击 “Create database” 超链接:

使用 Adminer 创建新数据库

使用 Adminer 创建新数据库。

将数据库命名为 “customers“,然后单击 “Save” 按钮。

然后,单击 Server 超链接(如下所示),验证是否已创建 customers 数据库:然后,单击创建数据库超链接:

导航到本地 Postgres 服务器

导航到本地 Postgres 服务器。

现在你将看到 customers 数据库。点击 customers 连接到它。

可以看到,该数据库中没有表。单击 “Create table” 超链接,创建一个名为 locations 的新表格。

使用 Adminer 在数据库中创建表格

使用 Adminer 在数据库中创建表格。

根据下图填写相应的列,然后单击 “Save” 按钮:

在数据库中创建表格的最后一步

在数据库中创建表格的最后一步。

现在,您应该可以在 customers 数据库中看到该表:

创建表格的确认信息

创建表格的确认信息。

再次单击 Server 超链接,查看所有数据库。勾选 customers 复选框。选中 customers 数据库将启用下面的下拉按钮。单击 drop 删除数据库。您将收到有关数据库删除操作的确认信息:

删除数据库的确认信息

删除数据库的确认信息。

小结

现在你已经学会了如何在本地 Postgres 服务器上通过命令行创建数据库、在数据库中创建表格和删除数据库。此外,您还学会了如何使用 Adminer 等数据库管理工具轻松执行这些任务。

虽然这些和其他命令行数据库和表管理方法都很实用,但 Adminer 的点选式用户界面让这些任务的执行更加无缝。

评论留言