psql的命令语法是:
psql [options] [dbname [username]]
psql命令行选项以及它们的意思在表1-1中列出。使用以下命令可以看到psql完整的选项列表:
$ psql --help
表1-1 psql命令行选项
选项 |
意义 |
-a |
从脚本中响应所有输入 |
-A |
|
-c <查询> |
|
-d <数据库名> |
|
-e |
回显发送到服务器的查询 |
-E |
|
-f <文件名> |
|
-F <字符串> |
|
-h <主机> |
指定数据库服务器主机(默认为$PGHOST或者本地主机) |
-H |
|
--help |
|
-l |
|
-n |
禁用readline;阻止行编辑 |
-o <文件名> |
|
-p <端口> |
指定数据库服务器的端口(默认为$PGPORT或者编译期设置的默认值,通常为4321) |
-P var[=arg] |
设置打印选项var为arg(查看\pset命令) |
-q |
|
-R <字符串> |
设置记录的分隔符(默认为换行);功能与“-P recordsep=<字符串>”相同 |
-s |
设置为单步执行模式(每条查询都需要确认) |
-S |
设置单行模式(每行结束就认为查询输入结束,而不是分号) |
-t |
只打印行;功能与“-P tuples_only”相同 |
-T <文本> |
|
-U <用户名> |
|
-v name=value |
设置psql变量name的值为value |
--version |
|
-W |
|
-x |
|
-X |
psql内部命令快速参考
psql支持的内部命令在表1-2中列出。在很多版本的Postgresql中,这些命令有一些更易读的长模式(例如\list就是\l的长模式命令)。
表1-1 psql命令行选项
命令 |
意义 |
\? |
列出所有的psql内部命令 |
\a |
在表格对齐和非对齐模式之间切换。 |
\c[onnect] [dbname|- [user]] |
|
\C <标题> |
|
\cd <目录> |
改变工作目录 |
\copy … |
Perform sql COPY with data stream to the client machine. |
\copyright |
|
\d <表> |
描述表(或者视图、索引、序列生成器) |
\d{t|i|s|v} |
列出表/索引/序列生成器/视图 |
\d{p|S|l} |
列出访问许可/系统表/大对象 |
\da |
列出聚合体(aggregates) |
\db |
列出表空间 |
\dc |
列出conversions |
\dC |
列出casts |
\dd [对象] |
列出表、类型、函数或者操作的注释 |
\dD |
列出domains |
\df |
|
\dg |
列出groups |
\dl |
列出大对象;也可以写作“\lo_list” |
\dn |
列出模式 |
\do |
列出operators |
\dT |
列出数据类型 |
\du |
列出用户 |
\e [file] |
|
\echo <文本> |
将文本打印到标准输出 |
\encoding <编码> |
设置客户端编码 |
\f <分隔符> |
|
\g [文件名] |
|
\h [命令] |
|
\H |
开启HTML模式 |
\i <文件名> |
|
\l |
列出所有的数据库 |
\lo_export,\lo_import, \lo_list,\lo_unlink |
执行大对象操作 |
\o [文件名] |
|
\p |
|
\pset <选项> |
设置表输出选项,可设置的选项可以是以下中的一个:format,border,expanded,fieldsep,footer,null,recordsep,tuples_only,title,tableattr,pager |
\q |
|
\qecho <文本> |
|
\r |
重置(清空)查询缓冲区 |
\s [文件名] |
打印历史或将历史存入文件中 |
\set <变量> <值> |
设置内部变量 |
\t |
只显示行(在该模式之间切换) |
\T <标记> |
|
\timing |
|
\z |
列出对表、视图和序列生成器的访问许可 |
\! [命令] |
切换到shell或者执行一个shell命 |