PostgreSQL中的常用元命令
2016-02-20 18:36
260 查看
本文综合分类列出了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。
元命令在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。
相关文章推荐
- mysql处理高并发,防止库存超卖
- mysql的学习记录
- MySQL_数据库操作语句
- MySQL 性能优化的最佳20多条经验分享
- MySQL优化必须调整的10项配置
- mysql性能优化-慢查询分析、优化索引和配置
- mysql 的常见语句总结和其他基础知识
- centos上安装及配置单台redis
- MySQL_登入登出
- MySQL 变量和条件
- MySQL_控制台操作_01
- MySQL怎样存储IP地址
- 在 Ubuntu 14.04 下安装 mysql 5.7.10
- mysql前缀索引
- 如何收缩超大的SharePoint_Config数据库
- SQL语句得到较为精确的用户年龄
- 数据库隔离级别详解
- mysql 对外开放
- 一个单引号引发的MYSQL性能损失(转)
- 在数据库创建表的时候,时间设置为什么类型,会随着每次提交的时间发生变化