如何在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”。 以多种方式之一指定其他用户。 常用的方法有ident和md5。 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);
这个命令完成了很多事情:
- 它在数据库 newdb 中创建了一个名为 potluck 的表。
- 我们在表格中设置了 4 列——姓名、食物、确认和注册日期。
- “名称”列已被 VARCHAR 命令限制为 20 个字符以下。
- “食物”栏指定每个人将携带的食物。 VARCHAR 将文本限制在 30 个字符以下。
- “已确认”列记录此人是否已用一个字母 Y 或 N 回复。
- 当他们报名参加活动时,“日期”列将显示。 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';
您还可以使用此命令将信息添加到特定单元格中,即使它们是空的。