PostgreSQL 使用入门
PostgreSQL 是开源的关系型数据库,标准支持完善,并提供 JSON 数据类型、可靠的事务等高级功能。本文介绍安装、创建数据库和用户、设置权限,以及通过 `psql` 使用基本命令。
测试说明:编写本文所用的电脑没有 PostgreSQL 服务器,也没有 `psql`,因此命令未在此运行。所用的 SQL 与 SQL 文章中用 SQLite 验证过的标准 SQL 相同。请在已安装 PostgreSQL 的电脑上自行运行。
需要准备的东西
- 从 postgresql.org 下载的 PostgreSQL 16 或更新版本(包含 `psql` 工具)
- 安装时设置的 `postgres` 用户密码
客户端如何连接
第 1 步:使用 psql 连接
psql -U postgres -h localhost
第 2 步:创建数据库和用户
CREATE DATABASE school;
CREATE USER teacher WITH PASSWORD 'change-me';
GRANT ALL PRIVILEGES ON DATABASE school TO teacher;
实际使用前,请把示例密码换成强密码。
第 3 步:创建表并添加数据
连接到 `school` 数据库并运行:
\c school
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
score INTEGER
);
INSERT INTO students (name, score) VALUES ('สมชาย', 85), ('สมหญิง', 72);
SELECT name, score FROM students WHERE score >= 80;
`SERIAL` 为键自动生成编号。`\c` 是 `psql` 的命令,用于切换数据库。
第 4 步:psql 常用命令
- `\l` 列出数据库
- `\dt` 列出表
- `\d students` 显示表结构
- `\q` 退出
常见错误
- **无法连接:** 检查 PostgreSQL 服务是否在运行,以及端口 5432 是否被防火墙阻止。
- **权限不足:** 只授予必要的权限,并为每个应用程序使用单独的用户。
- **没有备份:** 使用 `pg_dump school > school.sql` 定期备份。
下一步
学习用于加快查询的索引、使用 `BEGIN` 和 `COMMIT` 的事务,以及 JSON 数据的存储。
总结
PostgreSQL 作为服务器运行,可以清晰地区分数据库、用户和权限。基本流程是:创建数据库,创建用户,授予权限,然后对表使用 SQL。