介绍
关系数据库是数据组织的基石,满足众多需求,它们提供从网上购物到火箭发射的所有功能。一个值得尊敬的数据库,但仍在游戏中是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
: PostgreSQL 服务器包postgresql-client-9.4
: PostgreSQLpostgresql
的客户端:由 Debian 手册或 Debian 新维护者指南 更好地解释的元包
直接安装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 命令的完整列表,请遵循此链接:
要比较数据库的不同功能,您可以查看:
要更好地了解角色和权限,请参阅: