安装和使用PostgreSQL

2020年12月31日19:36:29 发表评论 47 次浏览

介绍

PostgreSQL是功能强大的对象关系数据库系统。它具有强大的功能, 并支持大量并发事务, 这使其成为大型和/或高需求数据库应用程序的绝佳选择。

本教程将介绍如何安装和运行PosgreSQL, 并介绍一些基本命令。

要求

  • 运行Linux(Ubuntu 16.04或CentOS 7)的云服务器

在Ubuntu 16.04上安装

更新你的服务器:

sudo apt-get update

添加官方PostgreSQL存储库:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

然后添加签名密钥:

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

安装PostgreSQL:

sudo apt-get install postgresql postgresql-contrib

要测试安装, 请切换到Postgres用户:

sudo su - postgres

然后输入Postgres客户psql:

psql

要退出客户端, 请输入:

\q

然后按Enter。

在CentOS 7上安装

更新系统:

sudo yum update

打开存储库配置文件以进行编辑:

sudo nano /etc/yum.repos.d/CentOS-Base.repo

将以下行放在末尾[基础]和[更新]部分:

exclude=postgresql*

保存并退出文件。

添加官方PostgreSQL存储库:

sudo yum install https://download.postgresql.org/pub/repos/yum/testing/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

然后安装PostgreSQL:

sudo yum install postgresql10-server.x86_64

初始化第一个数据库:

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

然后开始该过程:

sudo systemctl start postgresql-10

将其配置为在重新引导服务器时自动启动:

sudo systemctl enable postgresql-10

要测试安装, 请切换到Postgres用户:

sudo su - postgres

然后进入PostgreSQL客户端psql:

psql

要退出客户端, 请输入:

\q

然后按Enter。

登录PostgreSQL客户端

第一, su到Postgres用户:

sudo su - postgres

然后进入PostgreSQL客户端psql:

psql

注意:如果你不想使用PostgreSQL客户端, 也可以在命令提示符下使用修改后的PostgreSQL命令。本教程将介绍PostgreSQL客户端命令。有关命令提示符变体的更多信息, 请参见官方PostgreSQL文档.

创建, 选择和删除数据库

创建一个数据库

采用CREATE DATABASE [数据库名称]创建一个数据库。例如, 创建一个名为测试数据库命令是:

CREATE DATABASE testdb;

列出并选择数据库

采用\l列出所有可用的数据库:

postgres=# \l
                              List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 testdb    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)

采用\c连接到数据库并选择要使用的数据库:

postgres=# \c testdb
You are now connected to database "testdb" as user "postgres".

删除数据库

采用DROP DATABASE [数据库名称]删除数据库。例如, 删除测试数据库数据库, 命令是:

DROP DATABASE testdb;

要退出客户端, 请输入:

\q

然后按Enter。

创建和删除表

建立表格

采用CREATE TABLE [表名](列定义);创建一个表。完整清单创建表可以找到参数在官方PostgreSQL文档的CREATE TABLE一章中.

例如, 创建一个表测试台有两个基本列, 命令为:

CREATE TABLE testtable (
  id char(5) PRIMARY KEY, name varchar(40)
  );

采用\d验证你的表已创建:

testdb=# \d
           List of relations
 Schema |   Name    | Type  |  Owner
--------+-----------+-------+----------
 public | testtable | table | postgres
(1 row)

放一张桌子

采用DROP TABLE [表名];删除表。例如, 删除测试台表, 命令为:

DROP TABLE testtable;

采用\d验证你的表已删除:

testdb=# \d
No relations found.

处理记录:插入, 选择和更新数据

将数据插入表

采用INSERT INTO [表名] VALUES(数据, 数据...);将数据插入表中。完整清单插入可以找到参数在官方PostgreSQL文档的"插入数据"一章中.

例如, 将记录插入表中测试台命令是:

INSERT INTO testtable VALUES (1, 'Alice');
INSERT INTO testtable VALUES (2, 'Bob');

注意:以与表的列相同的顺序列出值很重要。在我们的示例中, 表格的第一列是id第二列是名称。因此, 我们需要将ID作为第一个值, 并将名称作为第二个值。

选择表格数据

采用查找从表中选择数据。完整清单查找可以找到参数在官方PostgreSQL文档的"查询"一章中.

例如, 列出我们所有的内容测试台命令是:

SELECT * from testtable;

这将返回所有表内容:

testdb=# SELECT * from testtable;
  id   | name
-------+-------
 1     | Alice
 2     | Bob
(2 rows)

你还可以指定匹配条件。例如使用SELECT * FROM testtable其中id ='1';仅选择ID为1的记录:

testdb=# SELECT * FROM testtable where id = '1';
  id   | name
-------+-------
 1     | Alice
(1 row)

你还可以过滤出要选择的列。例如使用从测试表中选择名称;只看名称所有记录的字段:

testdb=# SELECT name from testtable;
 name
 -------
 Alice
 Bob
(2 rows)

更新记录

采用UPDATE [表名] SET [新值] WHERE [匹配条件]更新记录。完整清单更新可以找到参数在官方PostgreSQL文档的"更新数据"一章中.

例如, 要将ID为2的记录从鲍勃to卡尔命令是:

UPDATE testtable SET name = 'Carl' WHERE id = '2';

采用查找验证记录已正确更新:

testdb=# SELECT * FROM testtable;
  id   | name
-------+-------
 1     | Alice
 2     | Carl
(2 rows)
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: