跳到主要内容

PostgreSQL 快速上手

安装好 PostgreSQL 后,你就可以开始使用命令行工具 psql 与数据库交互了。作为 PostgreSQL 提供的官方客户端,psql 允许你执行 SQL 语句、管理数据库、查看系统信息等。它是你掌握 PostgreSQL 的第一把钥匙。

本章将带你完成一系列典型操作,包括登录数据库、创建数据库和表、插入与查询数据,并掌握一些实用的 psql 命令。

使用 psql 连接数据库

PostgreSQL 安装完成后会自动创建一个名为 postgres 的默认数据库用户和数据库。

你可以使用以下命令切换到该用户并进入 psql 命令行界面:

sudo -i -u postgres
psql

💡 如果你为 postgres 用户设置了密码,也可以这样登录:

psql -U postgres -h localhost

登录成功后,你将看到类似提示:

postgres=#

这表示你已连接到 postgres 数据库,并处于命令交互状态。

创建新数据库

使用 SQL 命令创建一个新数据库(例如:testdb):

CREATE DATABASE testdb;

创建成功后,使用 \c 命令切换到该数据库:

\c testdb

输出:

You are now connected to database "testdb" as user "postgres".

创建用户并授权

出于安全性和多用户协作的考虑,PostgreSQL 通常不推荐一直使用超级用户(如 postgres)进行所有数据库操作。你可以为具体项目或开发者创建独立的数据库用户,并授予其对指定数据库的权限。

例如创建一个 devuser 用户,允许其操作 testdb 数据库:

-- 创建一个数据库(如果还没有)
CREATE DATABASE testdb;

-- 创建一个新用户(密码请自行设置强度)
CREATE USER devuser WITH PASSWORD 'devpassword';

-- 授权该用户对 testdb 拥有全部操作权限
GRANT ALL PRIVILEGES ON DATABASE testdb TO devuser;

GRANT ALL PRIVILEGES 命令赋予该用户对指定数据库的所有权限,包括连接、建表、插入、更新、删除等操作。

当你已经创建了用户 devuser 并授权,就可以通过该用户身份登录数据库:

psql -U devuser -d testdb -h localhost -W

输入密码后即可连接数据库。

提示

psql 命令中的 -W 选项用于强制提示输入密码(prompt for password before connecting),这是一个推荐使用的选项。加上 -W 参数后,psql在连接前要求你手动输入密码

因为如果 PostgreSQL 的身份验证方式为 trust,你甚至可以 不输密码 就登录数据库。不过,如果使用 md5scram-sha-256 等方式,则系统会 自动提示密码,即使你不写 -W

因此,使用 -W 是一种 明确、安全的做法,在自动化脚本或公共终端中也可以提醒用户注意输入密码。

创建数据表

现在你可以在 testdb 中创建一个数据表。例如,我们创建一个 users 表:

CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
);
  • SERIAL 表示自动递增的整数
  • PRIMARY KEY 表示主键
  • NOT NULL 表示不允许为空
  • UNIQUE 表示值不能重复

插入数据

向表中添加几条记录:

INSERT INTO users (name, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');

插入完成后会提示:

INSERT 0 2

表示成功插入了 2 条记录。

查询数据

你可以使用标准 SQL 查询语句查看表中的数据:

SELECT * FROM users;

输出结果类似:

 id | name  |       email       
----+-------+--------------------
1 | Alice | alice@example.com
2 | Bob | bob@example.com
(2 rows)

你还可以加上条件:

SELECT * FROM users WHERE name = 'Bob';

退出 psql

完成操作后,你可以使用以下命令退出 psql

\q

然后你可以使用 exit 命令返回普通 shell:

exit

psql 常用命令速查

psql 中,你可以使用 \ 开头的命令进行数据库管理。下表列出了 psql 常用的一些命令。

命令说明
\q退出 psql 命令行
\h查看 SQL 命令语法,例如 \h CREATE TABLE
\?显示所有可用的 psql 命令
\l列出所有数据库
\c dbname连接到数据库 dbname
\dt列出当前数据库中的所有表
\d tablename查看指定表的结构
\du列出所有数据库用户
\conninfo显示当前连接信息

小结

通过本章内容,你已经掌握了使用 psql 登录 PostgreSQL、创建数据库与表、插入与查询数据的基本流程。你还了解了常用的 psql 命令,这些都是你后续操作 PostgreSQL 的基础。无论是命令行还是图形界面(如 pgAdmin),本质上都是在执行这些核心操作。接下来,你可以进一步学习用户权限管理、表关联、数据导入导出等高级主题。

知心 MBTI 微信小程序
「知心MBTI」微信小程序,探索你的 MBTI 人格类型,发现潜能。微信扫码免费测试 🎉