查看所有数据库
\l


显示每个匹配关系(表、视图、索引、序列)的信息
\d [ pattern ]
不加任何参数表示查看当前数据库的所有表。
可以加上 + 查看更多的信息,如 \d+

后面跟一个表名,表示显示这个表的结构定义
\d tablename

也可以显示索引的信息,如 \d 索引名称
\d indexname

后面也可以跟通配符如 "*" 或 "?",\d x*
\d *

将显示比 \d 更详细的信息,还会显示任何与表关系的注释,以及表中出现的 OID
\d+

只显示匹配的表
\dt


只显示索引
\di


只显示序列
\ds


只显示视图
\dv


只显示函数
\df


显示 SQL 已执行的时间,默认情况下是 off
\timing on或off


进入某个数据库
psql –d dbname

\c dbname


列出所有的 schema
\dn


列出所有的数据库用户和角色
\du

\dg


显示所有的表空间,表空间其实是一个目录,放在这个表空间的表,就是把表的数据文件发到这个表空间下。
\db


显示表的权限分配情况
\dp

\z


指定客户端的字符编码
\encoding UTF8


设置输出的格式
\pset
\pset border 0 : 表示输出内容无边框。 border 1 :表示边框只在内部。border 2 :内外都有边框


把表中的每一行的每列数据都拆分为单行展示,与 MySQL 中的 "\G" 的功能类似。
\x


用于输出一行信息,通常用于在 .sql 文件中输出一些提示信息。
\echo


设置密码
\password


列出当前数据库连接的信息
\conninfo

查看数据库中安装的扩展 或 select * from pg_extension;
\dx


查看当前用户
\c
select current_user;


查看所有用户
select * from pg_user;
select * from pg_shadow;


查看所有角色
\du
select * from pg_roles;


查看是否归档
show archive_mode;


查看 XXX 数据库的大小
SELECT pg_size_pretty(pg_database_size('XXX')) As fulldbsize;


查看所有数据库的大小
select pg_database.datname, pg_size_pretty (pg_database_size(pg_database.datname)) AS size from pg_database;


查看各数据库数据创建时间:
select datname,(pg_stat_file(format('%s/%s/PG_VERSION',case when spcname='pg_default' then 'base' else 'pg_tblspc/'||t2.oid||'/PG_11_201804061/' end, t1.oid))).* from pg_database t1,pg_tablespace t2 where t1.dattablespace=t2.oid;


查看参数文件
show config_file;
show hba_file;
show ident_file;


查看某个参数值,比如参数work_mem
show work_mem


修改某个参数值,比如参数work_mem
alter system set work_mem='8MB'

使用alter system命令将修改postgresql.auto.conf文件,而不是postgresql.conf,这样可以很好的保护postgresql.conf文件,加入你使用很多alter system命令后搞的一团糟,那么你只需要删除postgresql.auto.conf,再执行pg_ctl reload加载postgresql.conf文件即可实现参数的重新加载。