PostgreSQL psql 命令语法参数说明

 2016年04月25日    366     声明


psqlPostgreSQL数据库提供的命令行终端程序,它允许我们交互地输入、编辑、执行SQL命令。使用psql进行数据库管理非常简单、轻量、高效,本站所有介绍PostgreSQL文章中的示例全部基于psql操作。


  1. psql语法格式
  2. psql的一些用法

1. psql语法格式

psql是一个使用命令行交互的PostgreSQL客户端(终端),它允许你输入查询语句,然后把它们发出给PostgreSQL,再将查询结果显示出来。交互方式不仅限于输入,也可以来自一个文件。

1.1 语法结构

psql语法格式如下:

psql [OPTION]... [DBNAME [USERNAME]]


1.2 参数说明

psql提供了一些可选参数,可以通过psql --help命令来查看所安装版本支持的参数。

通用选项

  • -c, --command=COMMAND:执行一条命令(或内置SQL)然后退出
  • -d, --dbname=DBNAME:默认连接的数据库
  • -f, --file=FILENAME:执行指定文件中的命令,然后退出
  • -l, --list:显示所有可用数据库名,然后退出
  • -v, --set=, --variable=NAME=VALUE:设置psql变量
  • -V, --version:显示版本信息,然后退出
  • -X, --no-psqlrc:不读取启动文件(系统内置的psqlrc及自定义的~/.psqlrc都不启动)
  • -1 ("one"), --single-transaction:执行单条存储过程
  • -?, --help:显示帮助信息,然后退出


输入输出选项

  • -a, --echo-all:在读取行时向标准输出打印所有内容
  • -e, --echo-queries:打印发送到服务器的内容
  • -E, --echo-hidden:显示内部命令生成的查询
  • -L, --log-file=FILENAME:将查询记录到指定的文件中
  • -n, --no-readline:命令行编辑中不使用readline
  • -o, --output=FILENAM:将查询输出定向到指定的文件中
  • -q, --quiet:静默处理(除查询输出外无其它输出)
  • -s, --single-step:单步模式运行。即:每个命令在发往服务器之前都要提示用户确认,用这个选项也可以取消执行。此选项主要用于调试脚本
  • -S, --single-line:单行运行模式,这时每个命令都将由换行符结束


输出格式选项

  • -A, --no-align:切换为非对齐输出模式(默认为对齐模式)
  • -F, --field-separator=STRING:指定输出字段的分隔符(默认为“|”)
  • -H, --html:HTML表格输出模式
  • -P, --pset=VAR[=ARG]:切换打印风格
  • -R, --record-separator=STRING:设置非对齐输出的记录分隔符
  • -t, --tuples-only:仅输出数据行(关闭列名称和结果行计数脚本等)
  • -T, --table-attr=TEXT:设置HTML表格输出模式时的HTML属性(width、border等)
  • -x, --expanded:打开扩展表格式模式
  • -z, --field-separator-zero:为未对齐的输出设置字段分隔符为零字节
  • -0, --record-separator-zero:为未对齐的输出设置记录分隔符为零字


连接选项

  • -h, --host=HOSTNAM:连接数据库服务器的主机IP或套接字目录(默认为“local socket”)
  • -p, --port=PORT:连接数据库服务器的端口号(默认为“5432”)
  • -U, --username=USERNAME:要连接数据库服务器的用户名
  • -w, --no-password:不提示密码。如果服务器需要密码验证而密码不可通过其他方式 (比如.pgpass文件)获得,则连接尝试将失败
  • -W, --password:强制使用密码


2. psql的一些用法

整理完psql命令后,下面介绍一些psql的常场景。

2.1 数据库登录

使用postgres用户登录安装在本机的数据库:

$ psql -U postgres
Password for user postgres:  //提示输入用户密码

输入用户密码后,登录成功

登录IP为192.168.1.3的服务器,并连接到名为"test"的数据库:

$ psql -U postgres -H 192.168.1.3 -d test


2.2 切换数据库

如果登录时未指定数据库,或需要切换到其它数据库,可以使用\c参数切换:

# \c dbname

以上命令相当于mysql数据库的use dbname命令。


2.3 查看所有数据库

查看当前系统中有哪些数据库可以使用\l\list参数:

# \l 

以上命令相当于mysql数据库的show databases命令。


2.4 查看数据库中的表

查看当前数据库中所有的表,使用\d参数:

# \d

以上命令相当于mysql数据库的show tables命令。


2.5 查看表中的字段

查看指定表中的字段,使用\d dbtable参数:

# \d mytable

以上命令相当于mysql数据库的desc dbtable show columns from dbtable命令。


2.6 查看表信息

查看表信息,使用\d+ dbtable参数:

# \d+ mytable

以上命令相当于mysql数据库的describe dbtable命令。


2.7 退出登录

退出登录,使用\q参数:

# \q

以上命令相当于mysql数据库的quit\q命令。