PostgreSQL 提供了丰富的命令行工具和 SQL 命令,用于管理和操作数据库。以下是一些常用的命令和操作:
1. 数据库管理
创建数据库
CREATE DATABASE dbname;
删除数据库
DROP DATABASE dbname;
列出所有数据库
\l
SELECT datname FROM pg_database;
切换到某个数据库
\c dbname
2. 表管理
创建表
CREATE TABLE tablename ( column1 datatype, column2 datatype, ...);
删除表
DROP TABLE tablename;
列出所有表
\dt
查看表结构
\d tablename
重命名表
ALTER TABLE oldname RENAME TO newname;
添加列
ALTER TABLE tablename ADD COLUMN columnname datatype;
删除列
ALTER TABLE tablename DROP COLUMN columnname;
3. 数据操作
插入数据
INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);
查询数据
SELECT * FROM tablename;
更新数据
UPDATE tablename SET column1 = value1 WHERE condition;
删除数据
DELETE FROM tablename WHERE condition;
清空表
TRUNCATE TABLE tablename;
4. 索引管理
创建索引
CREATE INDEX indexname ON tablename (columnname);
删除索引
DROP INDEX indexname;
重建索引
REINDEX INDEX indexname;
5. 用户和权限管理
创建用户
CREATE USER username WITH PASSWORD 'password';
删除用户
DROP USER username;
授予权限
GRANT ALL PRIVILEGES ON DATABASE dbname TO username;
撤销权限
REVOKE ALL PRIVILEGES ON DATABASE dbname FROM username;
列出所有用户
\du
6. 备份与恢复
备份数据库
pg_dump -U username -d dbname > backup.sql
恢复数据库
psql -U username -d dbname -f backup.sql
备份所有数据库
pg_dumpall -U username > backup_all.sql
7. 维护与优化
清理表(VACUUM)
VACUUM tablename;
分析表(ANALYZE)
ANALYZE tablename;
重建表(CLUSTER)
CLUSTER tablename USING indexname;
8. 其他常用命令
查看当前数据库
SELECT current_database();
查看当前用户
SELECT current_user;
查看 PostgreSQL 版本
SELECT version();
查看活动连接
SELECT * FROM pg_stat_activity;
终止连接
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'dbname';
9. psql
命令行工具常用命令
退出 psql
\q
查看帮助
\?
列出所有命令
\?
列出所有数据库
\l
列出所有表
\dt
列出所有索引
\di
列出所有函数
\df
执行外部 SQL 文件
\i filename.sql
10. 日志与监控
查看日志文件
cat /var/log/postgresql/postgresql.log
查看慢查询
SELECT * FROM pg_stat_activity WHERE state = 'active' AND now() - query_start > interval '5 seconds';
11. 扩展管理
列出所有扩展
\dx
安装扩展
CREATE EXTENSION extensionname;
卸载扩展
DROP EXTENSION extensionname;
以上是 PostgreSQL 的常用命令,涵盖了数据库管理、表操作、数据查询、用户权限、备份恢复等方面。根据实际需求,可以灵活使用这些命令