如何在 Ubuntu 12.04 上安装和使用 PostgreSQL
状态:已弃用
本文涵盖不再受支持的 Ubuntu 版本。如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
- 升级到 Ubuntu 14.04。
- 从 Ubuntu 14.04 升级到 Ubuntu 16.04
- 将服务器数据迁移到支持的版本
原因:
请参阅:
安装 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 .
要开始创建自定义用户,首先切换到默认用户:
sudo su – postgres
以该用户身份登录后,您可以继续在 PostgreSQL 系统中创建更多角色:
createuser
Enter name of role to add: newuser
Shall the new role be a superuser? (y/n) y
要为您的用户设置密码,您可以将单词 –pwprompt 添加到 createuser 命令:
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 列——姓名、食物、确认和注册日期。
- \name 列已被 VARCHAR 命令限制在 20 个字符以下。
- “食物”列指定每个人将携带的食物。VARCHAR 将文本限制在 30 个字符以下。
- “已确认”列记录此人是否收到了一个字母 Y 或 N 的 RSVP。
- “日期”列将显示他们报名参加活动的时间。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;
我想我们永远都不知道如何去野餐。
如何更新表中的信息
现在我们已经开始了我们的便餐清单,我们可以解决任何可能的变化。
例如:Sandy 已确认她正在参加,因此我们将更新表格中的信息。
UPDATE potluck set confirmed = 'Y' WHERE name = 'Sandy';
您还可以使用此命令将信息添加到特定单元格中,即使它们是空的。