摘自:[https://blog.csdn.net/aabc012/article/details/50705648](https://blog.csdn.net/aabc012/article/details/50705648) # 一、总览 ```sql \c[onnect] [DBNAME|- USER|- HOST|- PORT|-] 切换数据库、用户等,如\c testdb etl \connectinfo 显示连接信息 \encoding[ENCODING] 显示或设定字符集 \g [FILE] 放在sql语句后面可当“;”用,放在头部可指定输出文件,用于一次性输出 \q 退出psql交互终端 show search_path; --显示当前模式 set search_path to new_schema; --切换模式 ``` # 二、显示设定 ```sql \a 切换对齐与否 \C [STRING] 设定表名,如\C 'this is a table' \f [STRING] 为不对齐的查询输出设置域分隔符 \H 切换为HTML输出模式 \t [on|off] 只显示元组,默认为off \T [STRING] 使用HTML输出模式时声明放在table标记里的属性。 \x [on|off] 切换为每条记录一行,有时很有用 \pset NAME [VALUE] 以上的设定都可通过pset来设定,且有更多用法。 ``` # 三、查询缓冲 ```sql \p 显示当前缓冲查询(即上次SQL语句) \e [FILE] 编辑缓冲查询,在编辑复杂的SQL时非常有用 \r 清空缓冲查询 \w FILE 将缓冲查询的语句写入指定文件 \ef [FUNCNAME] 编辑指定的function,没指定则调用模板 \s [FILE] 将所有的历史查询写入默认文件或指定的文件 ``` # 四、 输入输出 ```sql \copy ... 类似sql的copy,不需要sql超级用户权限但效率较低如\copy tb1 from /home/gpadmin/tb1.txt with delimiter '|' \echo [STRING] 如\echo `date`,可嵌入sql语句文件中做提示 \i FILE 执行指定文件中的SQL语句 \o [FILE] 指定查询输出的目标文件(定向),\o回到终端 \g [FILE] 指定查询输出的目标文件(一次) \qecho [STRING]在\o指定目标文件后可用该命令将结果输出到目标文件,\echo此时是在终端上显示 注意:\i和\o对于批量处理SQL和输出结果非常有用 ``` # 五、操作系统 ```sql \cd [DIR] 切换目录 \timing [on|off] 打开执行计时,非常有用 \! [COMMAND] 执行shell命令 ``` # 六、列出信息 ```sql \d 列出当前模式下的表、视图、序列 \d+ 列出当前模式下的表、视图、序列及描述 \dS 列出当前模式和pg_catalog下的表、视图、序列 \dS+列出当前模式和pg_catalog下的表、视图、序列及描述 \d name 描述name(表、视图、索引、序列) \d+ name 描述name(表、视图、索引、序列)的详细信息 \dS name 等同于\d name \dS+ name 等同于\d+ name 对于Greenplum分区表可用\d+ name 逐级查看 ``` # 七、逻辑结构 ``` \l[+] 列出所有数据库 \dn[+] [PATTERN] 列出当前数据库下所有模式 \d[S+] 列出当前模式下所有关系 \dt[S+] [PATTERN] 列出当前模式下所有表 \dv[S+] [PATTERN] 列出当前模式下所有视图 \ds[S+] [PATTERN] 列出当前模式下所有序列 \di[S+] [PATTERN] 列出当前模式下所有索引 \dx [PATTERN] 列出当前模式下所有外部表 \d[S+] NAME 描述NAME ``` # 八、其他信息 ```sql \dT[S+] [PATTERN] 列出数据类型 \do[S] [PATTERN] 列出操作符 \da[S] [PATTERN] 列出聚集函数 \df[antw][S+] [PATRN] 列出聚集,自定义,触发器,开窗函数 \dC [PATTERN] 列出类型转换函数 \dc[S] [PATTERN] 列出字符集间的转换 \db[+] [PATTERN] 列出表空间 \dg[+]=\du[+] [PATTERN] 列出角色 ``` 启动psql的–E选项或psql中的\set ECHO\_HIDDEN on命令可显示\d系列命令实际执行的SQL。