PostgreSQL 交互终端

来源:互联网 发布:淘宝严禁出售黄赌毒 编辑:程序博客网 时间:2024/05/16 05:58
用法:psql [option...] [dbname [username]]
选项
●-a
  --echo-all
在读取行时向标准输出打印所有内容。 这个选项在脚本处理时比交互模式时更有用。这个选项等效于设置变量 ECHO 为 all。
●-A
  --no-align
切换为非对齐输出模式。(缺省输出模式是对齐的。)

●-c command
  --command command
声明 psql 将执行一条查询字串, command,然后退出。这一点在 shell 脚本里很有用。
command 必须是一条完全可以被服务器分析的查询字串(也就是说,它不包含 psql特有的特性), 或者是一个反斜杠命令。这样你就不会混合 SQL 和 psql 元命令。要想混合使用,你可以把字串定向到 psql里,象这样: echo "\x \\ select * from foo;" | psql。
如果命令字串包含多个 SQL 命令,那么他们在一个事务里处理, 除非在字串里包含了明确的 BEGIN/COMMIT 命令把他们分成多个事务。 这个和从 psql 的标准输入里给它填充相同字串不同。

●-d dbname
  --dbname dbname
声明想要联接的数据库名称。等效于在命令行行上把 dbname 声明为第一个非选项参数。

●-e
  --echo-queries
把所有发送给服务器的查询同时也拷贝到标准输出。 等效于把变量 ECHO 设置为 queries。

●-E
  --echo-hidden
回显由\d和其他反斜杠命令生成的实际查询。 你可以使用这个命令学习 psql 的内部操作。 这等效于在psql里设置变量ECHO_HIDDEN。
●-f filename
  --file filename
使用 filename作为命令的语句源而不是交互式读入查询。 在处理完文件后,psql 结束。这个选项在很多方面等效于内部命令 \i。
如果 filename 是 -(连字符),则从标准输入读取。
使用这个选项与用 psql < filename 有微小的区别。通常,两者都回按照你预期那样运行,但是使用 -f打开了一些很好的特性, 比如带行号的错误信息。而且,使用这个选项还有可能有减小启动负荷的机会。 另一方面,如果你把所有内容手工输入, 使用 shell 输入定向的方式(理论上)能保证生成和你已经得到的完全一样的输出(译注:重复运行命令)。

●-F separator
  --field-separator separator
使用 separator 作为未对齐输出的域分隔符。等效于 \pset fieldsep 或 \f。
●-h hostname
  --host hostname
声明正在运行服务器的主机名。 如果主机名以斜杠开头,则它被用做到 Unix 域套接字的路径。
●-H
  --html
打开HTML格式输出。等效于 \pset format html或 \H 命令。
●-l
  --list
列出所有可用的数据库,然后退出。其他非联接选项将被忽略。类似于内部命令 \list。
●-L filename
  --log-file filename
除了正常的输出源之外,把所有查询输出记录到文件 filename。
●-o filename
  --output filename
将所有查询输出定向到文件 filename。这个选项等效于命令 \o。
●-p port
  --port port
声明被服务器侦听的 TCP 端口或使用的缺省本地 Unix 主控套接字文件句柄。 缺省的是环境变量PGPORT的值,如果没有设置的话是编译是声明的端口,通常是 5432。
●-P assignment
  --pset assignment
允许你在命令行上以 \pset的风格设置打印选项。 要注意的是你在这里用等号分割名称和值,而不能用空格。 因此要把输出格式设置为 LaTeX,你可以敲入 -P format=latex。
●-q
--quiet
声明 psql 将安静地执行处理任务。 缺省时psql将打印欢迎和许多其他输出信息。 如果使用了此选项,这些都不出现。这在和 -c 选项一起使用时很有效。在 psql 里,你可以通过设置 QUIET 变量实现同样效果。
●-R separator
  --record-separator separator
使用 separator 做为非对齐输出的记录分隔符。 等效于\pset recordsep命令。
●-s
--single-step
进入单步模式运行。意味着每个查询在发往服务器之前都要提示用户, 用这个选项也可以取消执行。此选项主要用于调试脚本。
●-S
  --single-line
进入单行运行模式,这时每个命令都将由换行符结束,象分号那样。
注意: 注意这个模式是给那些坚持要这个特性的人的,我们不鼓励你这么用。 实际上,如果你在一行里混合使用 SQL 和元命令,执行的顺序对不熟练的用户而言不总是清晰的。
●-t
  --tuples-only
关闭打印列名称和结果行计数脚注等信息。等效于 \t 命令。
●-T table_options
  --table-attr table_options
允许你声明放在 HTML table 标记里的选项。 参阅 \pset 获取细节。
●-u
强制 psql 在和数据库联接之提示输入用户的用户名和口令。
这个选项已经废弃了,因为它在概念上有漏洞。 (提示输入非缺省用户名和提示输入服务器要求的口令是完全两码事。)我们鼓励你用 -U 和 -W 选项取代。
●-U username
  --username username
以用户 username 代替缺省用户与数据库联接。(当然,你必须有这么做的权限。)
●-v assignment
  --set assignment
  --variable assignment
进行一次变量分配,象内部命令 \set 那样。 注意,如果有变量名和值的话,你必须在命令行上用等号分隔它们。要重置一个变量, 去掉等号。这个分配是在启动的很早的阶段进行的,所以为内部使用保留的变量可能被再次覆盖。
●-V
  --version
打印 psql 版本然后退出。
●-W
  --password
强制 psql 在与一个数据库联接前提示输入口令。
如果服务器要求口令认证,psql 自动提出一个口令提示符。不过,目前是否需要输入口令的判断并不完全可靠, 因此用这个选项强制一个提示符。 如果没有发出口令提示符而服务器要求口令认证,那么联接企图将失败。
这个选项将在整个会话过程中有效,即使你用元命令 \connect 改变了所联接的数据库。
●-x
  --expanded
打开扩展表格式模式。等效于命令 \x。
●-X
  --no-psqlrc
不读取启动文件(系统的 psqlrc 或者你的 ~/.psqlrc 都不读取)。
●-?
--help
显示关于psql命令行参数的帮助然后退出。

退出状态
如果正常结束,那么 psql 向 shell 返回 0, 如果自身发生致命错误,则返回 1(内存用尽,未找到文件等), 如果和数据库的连接失效而且会话不再活跃则返回 2, 如果脚本中发生错误并且设置了 ON_ERROR_STOP 则返回 3。

元命令
你在 psql 里输入的任何以不带引号的反斜杠('\')开头的东西都是 psql 元命令,这些命令是由 psql 自己处理的。这些命令也是令 psql 更可用于管理或书写脚本的原因。 元命令更常见的叫法是斜杠或反斜杠命令。
一个 psql 命令的格式是反斜杠后面紧跟一个命令动词,然后是任意参数。 参数与命令动词和其他参数以任意个空白字符间隔。
有些命令以一个 SQL 标识的名称(如,一个表名)为参数。 这些参数遵循 SQL 语法关于双引号的规则: 不带双引号的标识强制成小写, 而双引号保护字母不受大小写转换,并且允许在标识符中使用空白。 在双引号中,成对的双引号在结果名字中分析成一个双引号。比如, FOO"BAR"BAZ 解析成 fooBARbaz,而 "A weird"" name" 变成 A weird" name。

\encoding [ encoding ]
设置客户端字符编码方式。不带参数时,这条命令显示当前的编码方式。
●\i filename
从文件filename中读取并把其内容当作从键盘输入的那样执行查询。
注意: 如果你想在屏幕上看到读入的行,你必须对所有行设置变量 ECHO 为 all。
●\help (或者 \h) [ command ]
给出指定 SQL 命令的语法帮助。如果没有给出 command ,那么 psql 将列出可获得语法帮助的所有命令。如果 command 是一个星号("*"),则显示所有 SQL 命令的语法帮助。
其它更多命令参数可查看帮助。


原创粉丝点击