如何在Ubuntu12.04上安装和使用PostgreSQL

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


安装 Postgres

在我们安装 postgres 之前,我们应该快速执行 apt-get 存储库的快速更新:

apt-get update

apt-get 更新后,继续下载 Postgres 及其有用的随附依赖项:

sudo apt-get install postgresql postgresql-contrib

这样,postgres 就安装在您的服务器上。

创建您的 PostgreSQL 角色和数据库

在您的服务器上安装 Postgres 后,您就可以开始配置数据库了。

Postgres 使用角色的概念来区分可以连接到数据库的各种用户。 当它首次安装在服务器上时,默认的 postgres 用户实际上名为“postgres”。 以多种方式之一指定其他用户。 常用的方法有identmd5。 postgres 默认使用 ident 身份验证,将每个服务器用户绑定到 Postgres 帐户。 可以在身份验证配置中设置的替代方案(位于“/etc/postgresql/9.1/main/pg_hba.conf”)是 md5,它要求客户端提供加密密码。

要开始创建自定义用户,首先切换到默认用户:

sudo su – postgres

以该用户身份登录后,您可以继续在 PostgreSQL 系统中创建更多角色:

createuser
Enter name of role to add: newuser
Shall the new role be a superuser? (y/n) y

要为您的用户配备密码,您可以在 createuser 命令中添加 –pwprompt 字样:

createuser --pwprompt

连接到 Postgres 数据库

设置好用于登录 Postgres shell 的用户后,您可以继续创建数据库供他们使用。

您可以作为超级用户创建 Postgres 数据库。 在这种情况下,我们将使用默认的超级用户。

继续并再次切换到 postgres 用户:

su – postgres

作为 postgres,你可以开始创建你的第一个可用的 postgres 数据库:

 createdb events

有了它,你终于可以连接到 postgres shell。

如何创建和删除 Postgres 表

一旦我们登录到正确的数据库(使用 psql -d events 命令,其中 events 是该数据库 ' 的名称),我们就可以在其中创建表。

让我们想象一下,我们正在计划一个朋友聚会。 我们可以使用 Postgres 来跟踪事件的细节。

让我们创建一个新的 Postgres 表:

CREATE TABLE potluck (name VARCHAR(20),
food VARCHAR(30),
confirmed CHAR(1), 
signup_date DATE);

这个命令完成了很多事情:

  1. 它在数据库 newdb 中创建了一个名为 potluck 的表。
  2. 我们在表格中设置了 4 列——姓名、食物、确认和注册日期。
  3. “名称”列已被 VARCHAR 命令限制为 20 个字符以下。
  4. “食物”栏指定每个人将携带的食物。 VARCHAR 将文本限制在 30 个字符以下。
  5. “已确认”列记录此人是否已用一个字母 Y 或 N 回复。
  6. 当他们报名参加活动时,“日期”列将显示。 Postgres 要求日期写为 yyyy-mm-dd

输入后,postgres 应使用以下行确认表创建:

CREATE TABLE

您还可以使用以下命令查看数据库中的所有表:

\dt

在这种情况下,结果应如下所示:

postgres=# \dt
        List of relations
 Schema |  Name   | Type  | Owner 
--------+---------+-------+-------
 public | potluck | table | root
(1 row)

如何向 Postgres 表添加信息

我们为我们的聚会准备了一张工作台。 现在是时候开始填写详细信息了。

使用此格式将信息插入每一行:

INSERT INTO potluck (name, food, confirmed, signup_date) VALUES('John', 'Casserole', 'Y', '2012-04-11');

输入后,您将看到以下文字:

INSERT 0 1

让我们在组中添加更多人:

INSERT INTO potluck (name, food, confirmed, signup_date) VALUES('Sandy', 'Key Lime Tarts', 'N', '2012-04-14');
INSERT INTO potluck (name, food, confirmed, signup_date)VALUES ('Tom', 'BBQ','Y', '2012-04-18');
INSERT INTO potluck (name, food, confirmed, signup_date) VALUES('Tina', 'Salad', 'Y','2012-04-18');

我们可以看看我们的表:

SELECT * FROM potluck;
 name  |      food      | confirmed | signup_date 
-------+----------------+-----------+-------------
 John  | Casserole      | Y         | 2012-04-11
 Sandy | Key Lime Tarts | N         | 2012-04-14
 Tom   | BBQ            | Y         | 2012-04-10
 Tina  | Salad          | Y         | 2012-04-18
(4 rows)

那么,如果我们想从我们的聚餐中删除一个不幸的参与者,在这个约翰和他的砂锅中,我们可以使用删除命令来完成此操作:

 DELETE FROM potluck WHERE name = 'John' ;

如何添加和删除列

我们正在创建一个方便的图表,但它缺少一些重要信息:我们与会者的电子邮件。

我们可以很容易地添加这个:

ALTER TABLE potluck ADD email VARCHAR(40);

该命令默认将名为“email”的新列放在表的末尾,而 VARCHAR 命令将其限制为 40 个字符。

就像您可以添加一列一样,您也可以删除一列:

ALTER TABLE potluck DROP email;

我想我们永远不会知道如何到达野餐者。

如何更新表中的信息

现在我们已经开始了我们的便餐清单,我们可以解决任何可能的变化。

例如:桑迪已经确认她正在参加,所以我们将在表格中更新它。

 UPDATE potluck set confirmed = 'Y' WHERE name = 'Sandy';

您还可以使用此命令将信息添加到特定单元格中,即使它们是空的。