psql 介绍

psql 是 PostgreSQL 中的一个交互式命令行工具,类似 Oracle 的 sqlplus,它允许用户交互式输入 SQL 语句或命令,然后发送给 PostgreSQL 服务器,再显示结果。 此外,psql 还有大量类似 shell 的特性来编写脚本,实现自动化操作。

在安装 postgresql 的时候,会创建一个与初始化数据库时的操作系统同名的数据库用户,这个用户是这个数据库的超级用户。 因此,在 OS 用户下登陆数据库时,会执行操作系统认证,因此无需用户名和密码,也可以通过修改 pg_hba.conf 文件来要求用户输入密码。

psql 也支持使用命令行参数来查询信息和执行 SQL,这种非交互模式与 linux 命令就没有太大区别了。 例如使用 psql -l 查看数据库,当然也可以通过命令进入数据库后,输出 \l 命令查看有哪些数据库。 默认会有一个叫 postgres 的数据库,这是默认安装后就有的一个数据库。 还有两个模板数据库,template0 和 template1。

当用户创建创建数据库时,是从模板数据库 template1 克隆来的,因此通常可以订制 template1 中的内容,例如添加一些表和函数,这样后续创建的数据库也会有这些表和函数。 template0 是一个最简化的数据库,如果指明从此数据库克隆,将创建出一个最简化的数据库。

使用 \d 查看有哪些表,使用 \c 连接到某数据库。连接命令格式如下:

BASH
psql -h <hostname or ip> -p <port> [数据库名称] [用户名称]
Click to expand and view more

也可以通过环境变量指定

BASH
export PGDATABASE=db_name
export PGHOST=ip
export PGPORT=port
export PGUSER=postgres
Click to expand and view more

psql 常用命令

对于上方命令,如果需要获取对应的 SQL 命令,可以在启动时加上 -E 参数:

SQL
psql -E postgresql
Click to expand and view more

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut