PostgreSQL——元命令
PostgreSQL 元命令详解
PostgreSQL 提供了一系列元命令(meta-commands),这些命令以反斜杠(\)开头,用于执行各种数据库管理任务。这些命令在 psql 命令行工具中特别有用。
连接相关命令
\c
或\connect [dbname [username] [host] [port]]
-连接到新数据库\conninfo
- 显示当前连接信息\password [username]
- 更改用户密码
信息查询命令
\l
或\list
- 列出所有数据库\dt
或\dt+
- 列出当前数据库中的表(+显示更多信息)\dn
- 列出所有模式\d [object]
- 描述数据库对象(表、视图、索引等)\du
或\du+
- 列出所有用户和角色\df
- 列出函数\dv
- 列出视图\di
- 列出索引\ds
- 列出序列\dp
或\z
- 列出表、视图和序列的访问权限\db
- 列出表空间\dT
- 列出数据类型\dD
- 列出域\dF
- 列出文本搜索配置\dS
- 列出系统表
执行控制命令
\e
或\edit
- 使用外部编辑器编辑查询\ef [function]
- 编辑函数定义\g
或\g [file]
- 执行前一个查询(可选输出到文件)\gx
- 以扩展格式执行前一个查询\gexec
- 执行前一个查询的每个结果作为SQL语句\i
或\include filename
- 从文件执行SQL\o
或\out [filename]
- 将查询结果重定向到文件\q
- 退出psql
格式化命令
\a
- 切换对齐/非对齐输出模式\C [title]
- 设置查询结果的标题\f [separator]
- 设置字段分隔符\H
- 切换HTML输出模式\pset [option [value]]
- 设置打印选项(border, format, null等)\t
- 切换只显示行/显示标题和行\T [table_options]
- 设置HTML表格属性\x
- 切换扩展格式输出
变量和别名
\set [name [value]]
- 设置psql变量\unset name
- 取消设置psql变量\prompt [text] name
- 提示用户输入并存储到变量\echo [text]
- 输出文本到标准输出\qecho [text]
- 输出文本到查询输出流\a
- 切换对齐/非对齐输出模式
事务控制
\begin
- 开始事务块\commit
- 提交当前事务\rollback
- 回滚当前事务
其它使用命令
\! [command]
- 执行shell命令\cd [directory]
- 更改当前工作目录\timing
- 切换命令计时开关\watch [seconds]
- 定期执行前一个查询\copy
- 执行COPY操作,但数据流通过客户端\lo_export, \lo_import, \lo_list, \lo_unlink
- 大对象操作
高级用法示例
查看表结构:
\d+ table_name
将查询结果导出到文件:
\o results.txt
SELECT * FROM users;
\o
定时执行查询:
SELECT now(), * FROM orders WHERE status = 'pending';
\watch 5
使用变量:
\set myvar 10
SELECT * FROM products WHERE id = :myvar;
编辑并执行查询:
\e
以扩展格式显示结果:
\x
SELECT * FROM large_table LIMIT 1;
执行SQL文件:
\i /path/to/script.sql
查看执行计划:
EXPLAIN ANALYZE SELECT * FROM large_table WHERE condition;
\watch 2
汇总表