PostgreSQL 提供了许多强大的命令和工具,用于管理和操作数据库。以下是一些常用的 PostgreSQL 命令及其用法:

1. 连接到 PostgreSQL 数据库

psql -U username -d dbname -h hostname -p port
  • -U username:指定用户名。
  • -d dbname:指定数据库名。
  • -h hostname:指定主机名(默认为本地主机)。
  • -p port:指定端口号(默认为 5432)。

2. 列出所有数据库

\l

3. 创建数据库

CREATE DATABASE dbname;

4. 删除数据库

DROP DATABASE dbname;

5. 连接到特定数据库

\c dbname

6. 列出当前数据库中的所有表

\dt

7. 查看表结构

\d tablename

8. 创建表

CREATE TABLE tablename (
    column1 datatype constraints,
    column2 datatype constraints,
    ...
);

9. 插入数据

INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);

10. 查询数据

SELECT * FROM tablename;

11. 更新数据

UPDATE tablename SET column1 = value1, column2 = value2 WHERE condition;

12. 删除数据

DELETE FROM tablename WHERE condition;

13. 创建用户

CREATE ROLE username WITH LOGIN PASSWORD 'password';

14. 删除用户

DROP ROLE username;

15. 授予用户权限

GRANT ALL PRIVILEGES ON DATABASE dbname TO username;

16. 撤销用户权限

REVOKE ALL PRIVILEGES ON DATABASE dbname FROM username;

17. 备份数据库

pg_dump -U username -F p -f backupfile.sql dbname

18. 恢复数据库

psql -U username -d dbname -f backupfile.sql

19. 列出所有角色(用户)

\du

20. 列出所有函数

\df

21. 列出所有索引

\d tablename

22. 列出所有视图

\dv

23. 退出 psql 命令行

\q

24. 显示帮助

\?

25. 执行 SQL 文件

\i filename.sql

26. 清空表

TRUNCATE TABLE tablename;

27. 查看当前用户

SELECT current_user;

28. 查看当前数据库

SELECT current_database();

29. 查看表的行数

SELECT COUNT(*) FROM tablename;

30. 查看表的索引

\d tablename

31. 查看表的约束

\d+ tablename

32. 查看表的触发器

\dT+ tablename

33. 查看表的外键

\d+ tablename

34. 查看表的分区

\d+ tablename

35. 查看表的继承关系

\d+ tablename

36. 查看表的列信息

\d+ tablename

37. 查看表的存储参数

\d+ tablename

38. 查看表的注释

\d+ tablename

39. 查看表的依赖关系

\dD+ tablename

40. 查看表的统计信息

\d+ tablename

41. 查看表的锁信息

SELECT * FROM pg_locks WHERE relation = 'tablename'::regclass;

42. 查看表的事务信息

SELECT * FROM pg_stat_activity WHERE datname = current_database();

43. 查看表的 WAL 信息

SELECT * FROM pg_stat_wal;

44. 查看表的复制信息

SELECT * FROM pg_stat_replication;

45. 查看表的性能信息

SELECT * FROM pg_stat_user_tables WHERE relname = 'tablename';

46. 查看表的缓存信息

SELECT * FROM pg_buffercache WHERE relfilenode = (SELECT oid FROM pg_class WHERE relname = 'tablename');

47. 查看表的分区信息

SELECT * FROM pg_partition_tree('tablename');

48. 查看表的继承信息

SELECT * FROM pg_inherits WHERE inhrelid = 'tablename'::regclass;

49. 查看表的触发器信息

SELECT * FROM pg_trigger WHERE tgrelid = 'tablename'::regclass;

50. 查看表的外键信息

SELECT * FROM information_schema.key_column_usage WHERE table_name = 'tablename';

51. 查看表的约束信息

SELECT * FROM information_schema.table_constraints WHERE table_name = 'tablename';

52. 查看表的索引信息

SELECT * FROM pg_indexes WHERE tablename = 'tablename';

53. 查看表的存储参数信息

SELECT * FROM pg_class WHERE relname = 'tablename';

54. 查看表的注释信息

SELECT * FROM pg_description WHERE objoid = (SELECT oid FROM pg_class WHERE relname = 'tablename');

55. 查看表的依赖关系信息

SELECT * FROM pg_depend WHERE refobjid = (SELECT oid FROM pg_class WHERE relname = 'tablename');

更多信息

请在psql中输入”\?”(用于内部指令)或者 “\help”(用于SQL命令),

psql 是 的交互式客户端工具。
使用方法:

 psql [选项]... [数据库名称 [用户名称]]

通用选项:

-c, --command=命令       执行单一命令(SQL或内部指令)然后结束
-d, --dbname=DBNAME      指定要连接的数据库 (默认:"tgoo")
-f, --file=文件名        从文件中执行命令然后退出
-l, --list               列出所有可用的数据库,然后退出
-v, --set=, --variable=NAME=VALUE
设置psql变量NAME为VALUE
(例如,-v ON_ERROR_STOP=1)
-V, --version            输出版本信息, 然后退出
-X, --no-psqlrc          不读取启动文档(~/.psqlrc)
-1 ("one"), --single-transaction
作为一个单一事务来执行命令文件(如果是非交互型的)
-?, --help[=options]     显示此帮助,然后退出
--help=commands      列出反斜线命令,然后退出
--help=variables     列出特殊变量,然后退出

输入和输出选项:

-a, --echo-all           显示所有来自于脚本的输入
-b, --echo-errors        回显失败的命令
-e, --echo-queries       显示发送给服务器的命令
-E, --echo-hidden        显示内部命令产生的查询
-L, --log-file=文件名    将会话日志写入文件
-n, --no-readline        禁用增强命令行编辑功能(readline)
-o, --output=FILENAME    将查询结果写入文件(或 |管道)
-q, --quiet              以沉默模式运行(不显示消息,只有查询结果)
-s, --single-step        单步模式 (确认每个查询)
-S, --single-line        单行模式 (一行就是一条 SQL 命令)

输出格式选项 :

-A, --no-align           使用非对齐表格输出模式
--csv                CSV(逗号分隔值)表输出模式
-F, --field-separator=STRING
为字段设置分隔符,用于不整齐的输出(默认:"|")
-H, --html               HTML 表格输出模式
-P, --pset=变量[=参数]   设置将变量打印到参数的选项(查阅 \pset 命令)
-R, --record-separator=STRING
为不整齐的输出设置字录的分隔符(默认:换行符号)
-t, --tuples-only        只打印记录i
-T, --table-attr=文本    设定 HTML 表格标记属性(例如,宽度,边界)
-x, --expanded           打开扩展表格输出
-z, --field-separator-zero
为不整齐的输出设置字段分隔符为字节0
-0, --record-separator-zero
为不整齐的输出设置记录分隔符为字节0
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。