介绍
关系数据库是满足众多需求的数据组织的基石。 他们为一切从网上购物到火箭发射。 一个数据库是既可敬,但仍然在游戏中是PostgreSQL。 PostgreSQL遵循大多数SQL标准,有ACID事务,支持外键和视图,并且仍在积极开发中。
如果你运行的应用程序需要稳定性,软件包质量和易于管理,Debian 8(代号“Jessie”)是Linux发行版的最佳选择之一。 它的移动比其他“发行”慢一点,但其稳定性和质量是公认的。 如果你的应用程序或服务需要一个数据库,Debian 8和PostgreSQL的组合是城里最好的之一。
在本文中,我们将向您展示如何在一个新的Debian 8 Stable实例上安装PostgreSQL并开始使用。
先决条件
第一件事是得到一个Debian 8稳定系统。 您可以按照从指令与Debian 8初始服务器设置的文章。 本教程假设您已经准备好了a Debian 8 Stable Droplet。
除非另有说明,本教程中的所有命令都应以具有sudo权限的非root用户身份运行。 要了解如何创建用户并授予他们Sudo权限,请与Debian 8初始服务器设置 。
安装PostgreSQL
在安装PostgreSQL之前,请通过以下方式更新apt软件包列表,确保您拥有来自Debian存储库的最新信息:
sudo apt-get update
您应该看到正在更新的包列表和以下消息:
Reading package lists... Done.
有迹象表明,以启动几个包postgresql
:
-
postgresql-9.4
:PostgreSQL服务器软件包 -
postgresql-client-9.4
:客户端PostgreSQL的 -
postgresql
:一个“综合包”是由比较好解释了Debian的手册或Debian新维护指南
要直接安装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已成功安装并正在运行。
访问PostgreSQL数据库
在Debian和PostgreSQL安装有默认用户和默认的数据库都被称为postgres
。 要连接到数据库,首先你需要切换到postgres
通过发出以下命令,同时以root身份登录(这不会使用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设置为通过匹配系统帐户请求的身份验证角色。 (您可以获取关于此的更多信息postgresql.org )。 它还带有一个假设,即存在一个匹配的数据库以供角色连接。 所以,如果我有一个名为用户test1
,该角色将尝试连接到一个数据库名为test1
默认。
你可以通过简单地调用这个命令的创建相应的数据库postgres
用户:
createdb test1
新的数据库test1
,现在被创建。
使用新用户连接到PostgreSQL
让我们假设你有一个名为Linux的帐户test1
,创建一个PostgreSQL test1
作用,与之相匹配的,并创建了数据库test1
。 在Linux更改用户帐户test1
:
su - test1
然后,连接到test1
数据库作为test1
使用命令PostgreSQL的作用:
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)
);
正如你所看到的,我们给表一个名字,然后定义我们想要的列,以及字段数据的列类型和最大长度。 我们还可以选择为每个列添加表约束。
您可以了解更多有关如何创建并在管理的Postgres表PostgreSQL中如何创建,删除,管理与表上的云服务器的文章。
为了我们的目的,我们将创建一个简单的表如下:
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
);
我们做了一个游乐场表,盘点我们有的设备。 这从设备ID开始,该设备ID是串行类型。 此数据类型是自动递增的整数。 我们给这个列提供了主键的约束,这意味着值必须是唯一的而不是null。
对于我们的两个列,我们没有给出字段长度。 这是因为一些列类型不需要设置长度,因为长度由类型隐含。
然后我们给出设备类型和颜色的列,每列不能为空。 然后,我们创建一个位置列,并创建一个约束,要求该值为八个可能的值之一。 最后一列是记录我们安装设备的日期的日期列。
看表,使用命令\dt
在PSQL提示。 结果将类似于
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | playground | table | postgres
你可以看到,我们有我们的游乐场表。
在表中添加,查询和删除数据
现在我们已经创建了一个表,我们可以插入一些数据到它。
让我们添加一个幻灯片和一个秋千。 我们通过调用我们要添加到的表,命名列,然后为每个列提供数据。 我们的幻灯片和秋千可以这样添加:
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
有用的命令
以下是几个可以帮助您了解当前环境的命令:
\:获取PSQL命令,包括那些未在此处列出的完整列表。
\ H:获取有关SQL命令的帮助。 您可以使用特定的命令来获取语法的帮助。
\ Q:退出psql程序并退出到Linux提示。
\ D:可用表,视图和序列在当前数据库列表。
\杜 :列出可用角色
\ DP:列表访问权限
\ DT:名单表
\ l:列出数据库
\ C:连接到不同的数据库。 根据数据库名称。
\密码 :为后面的用户名更改密码。
\ conninfo:获取有关当前数据库和连接信息。
使用这些命令,您应该能够在任何时间导航PostgreSQL数据库,表和角色。
结论
您现在应该有一个功能完整的PostgreSQL数据库,并在您的Debian系统上运行。 恭喜! 有大量的文档从这里去:
安装包
postgresql-doc
:sudo apt-get install postgresql-doc
README
安装在文件/usr/share/doc/postgresql-doc-9.4/tutorial/README
有关PostgreSQL中支持的SQL命令的完整列表,请按照以下链接:
要比较数据库的不同功能,您可以检查:
为了更好地了解角色和权限,请参阅: