如何在 Debian 8 上安装和使用 PostgreSQL 9.4

介绍

关系数据库是数据组织的基石,满足众多需求,它们提供从网上购物到火箭发射的所有功能。一个值得尊敬的数据库,但仍在游戏中是PostgreSQL。

如果你正在运行的应用程序需要稳定性、包质量和易于管理,那么Debian 8(代码名称Jessie)是Linux发行版的最佳候选人之一。

在本文中,我们将向您展示如何在新的 Debian 8 稳定实例上安装 PostgreSQL 并开始操作。

前提条件

首先要做的是让 Debian 8 稳定的系统运行。你可以遵循第 Debian 8 初始服务器设置文章的说明。

除非另有说明,本教程中的所有命令都应该作为具有 sudo 特权的非 root 用户运行. 要了解如何创建用户并授予他们 sudo 特权,请参阅 Debian 8 初始服务器设置

安装PostgreSQL

在安装 PostgreSQL 之前,请通过更新 apt 包列表来确保您有来自 Debian 存储库的最新信息:

1sudo apt-get update

您应该看到正在更新的包列表和以下消息:

1Reading package lists... Done.

有几个包以postgresql开头:

直接安装postgresql-9.4包:

1sudo apt-get install postgresql-9.4 postgresql-client-9.4

当被问及时,键入Y来安装包. 如果一切顺利,包现在从存储库下载并安装。

检查安装

要检查 PostgreSQL 服务器是否正确安装并运行,您可以使用命令 ps:

1# ps -ef | grep postgre

你应该在终端上看到这样的东西:

1postgres 32164 1 0 21:58 ?        00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/   postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
2postgres 32166 32164 0 21:58 ?        00:00:00 postgres: checkpointer process
3postgres 32167 32164 0 21:58 ?        00:00:00 postgres: writer process
4postgres 32168 32164 0 21:58 ?        00:00:00 postgres: wal writer process
5postgres 32169 32164 0 21:58 ?        00:00:00 postgres: autovacuum launcher process
6postgres 32170 32164 0 21:58 ?        00:00:00 postgres: stats collector process

成功! PostgreSQL 已成功安装并正在运行。

访问 PostgreSQL 数据库

在 Debian 上,PostgreSQL 安装了默认用户和默认数据库,都称为postgres。 要连接到数据库,您首先需要通过发出下列命令作为 root 登录时切换到postgres用户(这不会在 sudo 访问中工作):

1su - postgres

您现在应该登录为postgres。 要启动 PostgreSQL 控制台,键入psql:

1psql

完成了! 您应该登录到 PostgreSQL 控制台. 您应该看到以下提示:

1psql (9.4.2)
2Type "help" for help.
3
4postgres=#

要退出 psql 控制台,只需使用命令 \q

创造新的角色

默认情况下,Postgres使用一个名为角色的概念来帮助验证和授权,这些在某种程度上类似于常规的Unix类型帐户,但PostgreSQL不区分用户和群组,而更喜欢更灵活的术语角色

在安装时,PostgreSQL设置为使用相同身份验证,这意味着它将PostgreSQL角色与匹配的Unix/Linux系统帐户相关联。

安装过程创建了一个名为postgres的用户帐户,与默认的Postgres角色相关联。

要创建额外的角色,我们可以使用createuser命令. 请记住,这个命令应该作为用户postgres发出,而不是在PostgreSQL控制台中:

1createuser --interactive

这基本上是一个交互式壳脚本,它会调用正确的 PostgreSQL 命令来创建用户,以满足您的规格。它会问您一些问题:角色的名称,它是否应该是超级用户,角色是否应该能够创建新的数据库,以及角色是否能够创建新的角色。

1man createuser

创建新数据库

默认情况下,PostgreSQL 设置了由匹配系统帐户要求的身份验证角色(您可以通过 postgresql.org获取有关此问题的更多信息)。

您可以通过简单地将此命令称为postgres用户来创建相应的数据库:

1createdb test1

新的数据库test1现在已经创建。

与新用户连接到 PostgreSQL

假设你有一个名为test1的Linux帐户,创建了一个PostgreSQLtest1角色来匹配它,并创建了数据库test1

1su - test1

然后,使用命令连接到test1数据库作为test1 PostgreSQL 角色:

1psql

现在你应该看到PostgreSQL提示,新创建的用户test1而不是postgres

创建和删除表

现在你已经知道如何连接到PostgreSQL数据库系统,我们将开始讨论如何完成一些基本任务。

首先,让我们创建一个表格来存储一些数据,让我们创建一个表格来描述游乐场设备。

这个命令的基本语法是这样的:

1CREATE TABLE table_name (
2    column_name1 col_type (field_length) column_constraints,
3    column_name2 col_type (field_length),
4    column_name3 col_type (field_length)
5);

正如您所看到的,我们给表一个名称,然后定义我们想要的列,以及列类型和字段数据的最大长度。

您可以了解有关如何在 Postgres 中创建和管理表的更多信息,请参阅 如何在云服务器上创建、删除和管理 PostgreSQL 中的表文章。

为了我们的目的,我们将创建一个简单的表,如下:

1CREATE TABLE playground (
2    equip_id serial PRIMARY KEY,
3    type varchar (50) NOT NULL,
4    color varchar (25) NOT NULL,
5    location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
6    install_date date
7);

我们创建了一个游乐场表,库存我们所拥有的设备。这始于一个设备ID,即序列类型。这个数据类型是自动增加的整数。我们给了这个列的主要密钥的限制,这意味着值必须是唯一的,而不是null。

对于我们的两个列,我们没有给出一个字段长度,因为某些列类型不需要设置长度,因为长度是由类型暗示的。

然后我们为设备类型和颜色提供列,每个列都不能空白,然后我们创建一个位置列,并创建一个限制,要求该值是可能的八个值之一。

要查看表格,请在 psql 提示中使用命令 `\dt 。

1List of relations
2 Schema |    Name    | Type  |  Owner 
3--------+------------+-------+----------
4 public | playground | table | postgres

正如你所看到的,我们有我们的游乐场桌。

在表中添加、查询和删除数据

现在我们已经创建了一个表,我们可以将一些数据插入其中。

我们通过呼叫我们想要添加的表,命名列,然后为每个列提供数据。

1INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
2INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');

首先,请记住,列名不应该引用,但您输入的列值需要引用。

另外要记住的是,我们不输入equip_id列的值,这是因为每当在表中创建一个新行时,它会自动生成。

然后我们可以通过键入返回我们添加的信息:

1SELECT * FROM playground;

产量应该是

1equip_id | type  | color  | location  | install_date 
2----------+-------+--------+-----------+--------------
3        1 | slide | blue   | south     | 2014-04-28
4        2 | swing | yellow | northwest | 2010-08-16

在这里,您可以看到我们的equip_id已成功填写,我们的所有其他数据已被正确组织。如果我们的幻灯片被打破,我们将它从游乐场中移除,我们也可以通过键入来从我们的表中移除行:

1DELETE FROM playground WHERE type = 'slide';

如果我們再次尋找我們的桌子:

1SELECT * FROM playground;

我们会看到我们的幻灯片不再是表的一部分:

1equip_id | type  | color | location | install_date 
2----------+-------+-------+----------+--------------
3        1 | slide | blue  | south    | 2014-04-28

有用的命令

以下是一些可以帮助您了解当前环境的命令:

  • ? : 获取 psql 命令的完整列表,包括未列出的 psql 命令。
  • \h : 获取 SQL 命令的帮助. 您可以使用特定的命令获取语法的帮助。
  • \q : 退出 psql 程序并退出 Linux 提示.
  • \d : 现有数据库中的可用表、视图和序列列.
  • \du : 可用角色列表
  • \dp : 访问权限列表
  • **\dt: 密码列表
  • **\l: 数据库列表

使用这些命令,您应该能够在短时间内导航 PostgreSQL 数据库、表和角色。

结论

您现在应该有一个功能齐全的 PostgreSQL 数据库,并在您的 Debian 系统上运行。

  • PostgreSQL 手册
  • 安装包 postgresql-doc: sudo apt-get install postgresql-doc
  • README 文件安装在 /usr/share/doc/postgresql-doc-9.4/tutorial/README

对于在 PostgreSQL 中支持的 SQL 命令的完整列表,请遵循此链接:

要比较数据库的不同功能,您可以查看:

要更好地了解角色和权限,请参阅:

Published At
Categories with 技术
Tagged with
comments powered by Disqus