关系数据库是满足多种需求的数据组织的基石。它们支持从网上购物到火箭发射的各种功能。PostgreSQL是一个既古老但仍然存在的数据库。PostgreSQL遵循大部分SQL标准,具有ACID事务,支持外键和视图,并且仍在积极开发中。
如果您运行的应用程序需要稳定性,打包质量和易于管理,Debian 8(代号“Jessie”)是Linux发行版的最佳候选者之一。它的移动速度比其他“发行版”慢一点,但它的稳定性和质量得到了很好的认可。如果您的应用程序或服务需要数据库,Debian 8和PostgreSQL的组合是城里最好的组合之一。
在本文中,我们将向您展示如何在新的Debian 8 Stable实例上安装PostgreSQL并开始使用。
第一件事是让Debian 8 Stable系统继续运行。本教程假设您准备好了Debian 8 Stable 腾讯云CVM。
除非另有说明,否则本教程中的所有命令都应作为具有sudo权限的非root用户运行。
没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。
在安装PostgreSQL之前,请确保通过更新apt包列表来获取Debian存储库中的最新信息:
sudo apt-get update
您应该看到正在更新的包列表以及以下消息:
Reading package lists... Done.
有几个包以postgresql
开头:
postgresql-9.4
:PostgreSQL服务器包postgresql-client-9.4
:PostgreSQL的客户端postgresql
:“metapackage”。(它在Debian Handbook或Debian New Maintainers'Guide中有更好的解释)要直接安装postgresql-9.4
包:
sudo apt-get install postgresql-9.4 postgresql-client-9.4
当被询问时,键入Y
以安装软件包。如果一切顺利,现在可以从存储库下载并安装软件包。
要检查PostgreSQL服务器是否已正确安装并且正在运行,您可以使用ps
命令:
# ps -ef | grep postgre
你应该在终端上看到这样的东西:
postgres 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
postgres 32166 32164 0 21:58 ? 00:00:00 postgres: checkpointer process
postgres 32167 32164 0 21:58 ? 00:00:00 postgres: writer process
postgres 32168 32164 0 21:58 ? 00:00:00 postgres: wal writer process
postgres 32169 32164 0 21:58 ? 00:00:00 postgres: autovacuum launcher process
postgres 32170 32164 0 21:58 ? 00:00:00 postgres: stats collector process
成功了!PostgreSQL已成功安装并正在运行。
在Debian上,PostgreSQL安装时默认用户和默认数据库都叫postgres
。要连接到数据库,首先需要在以root身份登录时通过发出以下命令切换到用户postgres
(这不适用于sudo访问):
su - postgres
你现在应该已经作为postgres
登录。要启动PostgreSQL控制台,请键入psql
:
psql
完成了!您已经登录了PostgreSQL控制台。您应该看到以下提示:
psql (9.4.2)
Type "help" for help.
postgres=#
要退出psql控制台,只需使用\q
命令即可。
默认情况下,Postgres使用称为“角色”的概念来帮助进行身份验证和授权。在某些方面,这些类似于常规的Unix风格帐户,但PostgreSQL不区分用户和组,而是更喜欢更灵活的术语“角色”。
安装后,PostgreSQL设置为使用“ident”身份验证,这意味着它将PostgreSQL角色与匹配的Unix / Linux系统帐户相关联。如果存在PostgreSQL角色,则可以通过登录到关联的Linux系统帐户来登录。
安装过程创建了一个名为postgres的用户帐户,该帐户与默认的Postgres角色相关联。
要创建其他角色,我们可以使用createuser
命令。请注意,此命令应以用户postgres
的身份发布,而不是在PostgreSQL控制台内部:
createuser --interactive
这基本上是一个交互式shell脚本,它调用正确的PostgreSQL命令来根据您的规范创建用户。它会问你一些问题:角色的名称,是否应该是超级用户,角色是否应该能够创建新数据库,以及角色是否能够创建新角色。man
页面包含更多信息:
man createuser
PostgreSQL默认设置为匹配系统帐户请求的身份验证角色。它还假设存在匹配数据库以供角色连接。因此,如果我有一个被调用的用户test1
,该角色将尝试连接到默认调用的数据库test1
。
您只需以postgres
用户身份调用此命令即可创建相应的数据库:
createdb test1
现在创建了新数据库test1
。
假设您有一个名为test1
的Linux的帐户,创建了一个匹配它的PostgreSQL 角色test1
,并创建了数据库test1
。要将Linux中的用户帐户更改为test1
:
su - test1
然后,使用以下命令以PostgreSQL角色test1
连接到数据库test1
:
psql
现在您应该看到PostgreSQL提示与新创建的用户test1
而不是postgres
。
既然您已经知道如何连接到PostgreSQL数据库系统,我们将开始讨论如何完成一些基本任务。
首先,让我们创建一个表来存储一些数据。让我们创建一个描述游乐场设备的表格。
此命令的基本语法如下:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
如您所见,我们为表提供一个名称,然后定义我们想要的列,以及字段数据的列类型和最大长度。我们还可以选择为每列添加表约束。
出于我们的目的,我们将创建一个这样的简单表:
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
install_date date
);
我们制作了一个playground table,可以用于清点我们拥有的设备。这从设备ID开始,该ID是串行类型。此数据类型是自动递增整数。我们已经为此列提供了主键的约束,这意味着值必须是唯一的而不为空。
对于我们的两个列,我们没有给出字段长度。这是因为某些列类型不需要设置长度,因为类型隐含了长度。
然后我们给出设备类型和颜色的列,每个列都不能为空。然后,我们创建一个位置列并创建一个约束,该约束要求该值为八个可能值之一。最后一列是日期列,记录我们安装设备的日期。
要查看表,请在psql提示符下使用命令\dt
。结果将类似于
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | playground | table | postgres
如您所见,我们有playground table了。
现在我们已经创建了一个表,我们可以在其中插入一些数据。
让我们添加一张幻灯片和一个swing。我们通过调用我们想要添加的表,命名列然后为每列提供数据来完成此操作。我们的幻灯片和swing可以添加如下:
INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');
你应该注意到一些事情。首先,请记住不应引用列名,但是您输入的列值确实需要引号。
要记住的另一件事是我们不输入equip_id
列的值。这是因为只要创建表中的新行,就会自动生成此项。
然后我们可以通过输入以下内容来获取我们添加的信息:
SELECT * FROM playground;
输出应该是
equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
1 | slide | blue | south | 2014-04-28
2 | swing | yellow | northwest | 2010-08-16
在这里,您可以看到我们已成功填写equip_id
,并且所有其他数据都已正确组织。如果我们的幻灯片断开,我们将它从操场上移除,我们也可以通过键入以下内容从表中删除行:
DELETE FROM playground WHERE type = 'slide';
如果我们再次查询我们的表:
SELECT * FROM playground;
我们将看到我们的幻灯片不再是表格的一部分:
equip_id | type | color | location | install_date
----------+-------+-------+----------+--------------
1 | slide | blue | south | 2014-04-28
以下是一些可以帮助您了解当前环境的命令:
使用这些命令,您应该能够立即导航PostgreSQL数据库,表和角色。
您现在应该在Debian系统上启动并运行功能齐全的PostgreSQL数据库。恭喜!这里有大量的文档:
postgresql-doc
包:sudo apt-get install postgresql-doc
README
文件安装在 /usr/share/doc/postgresql-doc-9.4/tutorial/README
有关PostgreSQL中支持的SQL命令的完整列表,请访问以下链接:
想要了解更多关于安装和使用PostgreSQL 9.4的相关教程,请前往腾讯云+社区学习更多知识。
参考文献:《How To Install and Use PostgreSQL 9.4 on Debian 8》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。