以下是一些常用的 PostgreSQL 命令,按功能分类总结,供参考:
1. 数据库管理相关命令
创建数据库
CREATE DATABASE database_name;
删除数据库
DROP DATABASE database_name;
连接到某个数据库
在 psql
中:
\c database_name
或从命令行:
psql -U username -h host -p port -d database_name
查看所有数据库
\l
查看当前连接的数据库
SELECT current_database();
2. 用户和权限管理
创建用户
CREATE USER username WITH PASSWORD 'password';
删除用户
DROP USER username;
为用户授予权限
GRANT ALL PRIVILEGES ON DATABASE database_name TO username;
查看用户权限
\du
3. 表操作相关
创建表
CREATE TABLE table_name (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
created_at TIMESTAMP DEFAULT NOW()
);
查看表结构
\d table_name
查看所有表
\dt
删除表
DROP TABLE table_name;
清空表(删除所有数据但保留表结构)
TRUNCATE TABLE table_name;
修改表结构
- 添加列:
ALTER TABLE table_name ADD COLUMN column_name data_type;
- 删除列:
ALTER TABLE table_name DROP COLUMN column_name;
- 修改列数据类型:
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type;
4. 数据操作相关
插入数据
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
查询数据
SELECT * FROM table_name WHERE column_name = 'value';
更新数据
UPDATE table_name SET column_name = 'new_value' WHERE condition;
删除数据
DELETE FROM table_name WHERE condition;
5. 事务管理
开启事务
BEGIN;
提交事务
COMMIT;
回滚事务
ROLLBACK;
自动提交事务(默认开启,可以手动关闭)
\set AUTOCOMMIT off
6. 索引管理
创建索引
CREATE INDEX index_name ON table_name (column_name);
删除索引
DROP INDEX index_name;
查看表的索引
\d table_name
7. 系统和配置相关
查看当前会话设置
SHOW ALL;
设置某个参数
SET parameter_name TO 'value';
重载配置文件
(如更改 postgresql.conf
后使用)
pg_ctl reload
8. 备份和恢复
备份数据库
pg_dump -U username -h host -p port -d database_name > backup.sql
恢复数据库
psql -U username -h host -p port -d database_name < backup.sql
9. 监控和调试
查看当前连接
SELECT * FROM pg_stat_activity;
查看某张表的磁盘使用情况
SELECT pg_size_pretty(pg_total_relation_size('table_name'));
查看数据库大小
SELECT pg_size_pretty(pg_database_size('database_name'));
10. psql 实用命令
退出 psql
\q
清屏
\! clear
启用/禁用扩展模式
\x
导出查询结果到文件
\o /path/to/output_file
SELECT * FROM table_name;
\o
运行 SQL 文件
\i /path/to/sql_file.sql
总结
PostgreSQL 功能非常强大,以上命令是使用 PostgreSQL 时最常见的操作。可以结合实际开发需求进行选择和使用!