PostgreSQL中的常用元命令

来源:互联网 发布:unity3d在哪可以下载 编辑:程序博客网 时间:2024/06/06 02:46

本文综合分类列出了PostgreSQL(greenplum)中常用的元命令(即斜杠命令),并加上了个人的理解。


元命令在Shell终端中的综合使用可以实现复杂的功能。


l查询用户表并扩展打印

echo ‘\x \\ SELECT * FROM pg_user;’ | psql

l同时查询所有的数据类型和操作符

echo ‘\dTS \doS’ | psql

l查询长方形box的数据类型和所有相关的操作符

echo \dTS \doS’ | psql | grep box

l将查询结果输出到指定文件

echo \dTS \doS’ | psql | grep box > sql_result


一、总览

\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;切换模式


二、显示设定

\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来设定,且有更多用法。


三、查询缓冲

 \p  显示当前缓冲查询(即上次SQL语句)

 \e [FILE]  编辑缓冲查询,在编辑复杂的SQL时非常有用

 \r     清空缓冲查询        

 \w FILE   将缓冲查询的语句写入指定文件

 \ef [FUNCNAME]  编辑指定的function,没指定则调用模板

 \s [FILE]  将所有的历史查询写入默认文件或指定的文件


四、 输入输出

\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和输出结果非常有用


五、操作系统

\cd [DIR]            切换目录     

\timing [on|off]   打开执行计时,非常有用

\! [COMMAND]   执行shell命令


六、列出信息

\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


八、其他信息

\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




0 0