Post
PostgreSQL 常用命令与操作指南
PostgreSQL 常用命令与操作指南
概述
本文整理了 PostgreSQL 数据库连接、操作、备份恢复及用户管理的常用命令,涵盖数据表管理、事务处理及导入导出方法。适用于日常数据库维护、开发调试及自动化脚本编写场景。
数据库连接与基础操作
连接数据库
- 基础连接
psql -U username -d dbname - 指定主机与端口
psql -U username -h host -p port -d dbname
数据库管理
- 创建数据库
CREATE DATABASE dbname; - 列出所有数据库
\l - 删除数据库
DROP DATABASE dbname; - 切换数据库
\c dbname
数据表与结构操作
表管理
- 查看所有表
\dt - 创建表
CREATE TABLE table_name ( column1 datatype, column2 datatype ); - 查看表结构
\d table_name - 删除表
DROP TABLE table_name;
表结构修改
- 添加列
ALTER TABLE table_name ADD COLUMN column_name datatype; - 修改列类型
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_datatype; - 重命名表或列
ALTER TABLE old_table RENAME TO new_table; ALTER TABLE table_name RENAME COLUMN old_column TO new_column; - 删除列
ALTER TABLE table_name DROP COLUMN column_name;
数据操作与事务
数据增删改查
- 插入数据
INSERT INTO table_name (column1, column2) VALUES (value1, value2); - 查询数据
SELECT column1, column2 FROM table_name WHERE condition; - 更新数据
UPDATE table_name SET column1 = value1 WHERE condition; - 删除数据
DELETE FROM table_name WHERE condition;
事务控制
- 开启事务
BEGIN; - 提交事务
COMMIT; - 回滚事务
ROLLBACK;
约束与索引管理
添加约束
- 主键约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name); - 外键约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES other_table(other_column);
索引操作
- 创建索引
CREATE INDEX index_name ON table_name (column_name); - 删除索引
DROP INDEX index_name;
数据备份与恢复
导出数据库
- 生成 SQL 备份文件
pg_dump dbname > dbname_backup.sql
恢复数据库
- 导入 SQL 文件
psql -U username -d dbname -f /path/to/backup.sql - 使用 pg_restore 恢复自定义格式备份
pg_restore -U username -d dbname /path/to/backup.dump
pg_restore 常用选项
| 选项 | 描述 |
|---|---|
-v |
显示详细恢复日志 |
-j n |
启用并行恢复(提升大文件恢复速度) |
-s |
仅恢复表结构 |
-a |
仅恢复数据 |
--clean |
恢复前删除目标数据库中已存在的对象 |
注意事项
pg_restore仅适用于自定义格式(如pg_dump -Fc生成的.dump文件),普通 SQL 文件需用psql导入。- 恢复前需确保目标数据库已存在,或通过
psql -c "CREATE DATABASE dbname;"创建。
用户权限管理
用户操作
- 创建用户
CREATE USER username WITH PASSWORD 'password'; - 授予权限
GRANT ALL PRIVILEGES ON DATABASE dbname TO username; - 删除用户
DROP USER username;
其他实用命令
- 查看连接信息
\conninfo - 查看 PostgreSQL 版本
SELECT version(); - 查看数据库配置
SHOW ALL; - 查询表全部数据
SELECT * FROM table_name;
导入 SQL 文件的多种方式
通过 psql 命令行
psql -U postgres -d mydb -f /path/to/backup.sql
通过 pgAdmin 图形化工具
- 连接数据库后,右键目标数据库 → Query Tool。
- 使用 打开文件 图标加载 SQL 文件。
- 点击 执行(F5)运行脚本。
通过 pg_restore 恢复备份
- 恢复到新数据库
psql -U postgres -c "CREATE DATABASE newdb;" pg_restore -U postgres -d newdb /path/to/backup.dump - 覆盖现有数据
pg_restore -U postgres -d mydb --clean /path/to/backup.dump
适用边界与注意事项
-
命令适用性
pg_dump生成的.sql文件需用psql导入,pg_restore仅支持自定义格式(.dump)。pg_restore的--clean选项可能删除目标数据库中已有数据,需谨慎使用。
-
环境依赖
- 导入操作需确保目标数据库已存在,或通过
CREATE DATABASE预先创建。 - 容器化部署(如 Docker)中使用 PostgreSQL 时,需注意卷挂载与数据持久化配置(参见
container-database话题)。
- 导入操作需确保目标数据库已存在,或通过