PostgreSQL 基础知识:psql 提示和技巧

对于积极使用和连接到 PostgreSQL 数据库的任何开发人员或 DBA 来说,能够访问psql命令行工具是必不可少的。在我们的第一篇文章中,我们讨论了 psql的简要历史,并演示了如何在您选择的平台上安装它并连接到 PostgreSQL 数据库。

在本文中,我们将帮助您了解成为高级用户所需了解的所有psql基本知识 。从基本的命令语法到最常见(和最有用的)元命令,本文的其余部分都涵盖了这些内容。
要从本内容中获得最大价值,您应该已经 安装psql并连接到 PostgreSQL 数据库,以便您可以在阅读时尝试这些命令。

基本可用性提示

psql实用程序包含许多有用的命令,可帮助您探索和管理数据库。任何斜杠命令 ( \) 都用于指定一个元命令,该命令通常会在后台运行必要的 SQL 查询并以可读格式返回结果。


首先,让我们看一下有关 psql 作为命令行工具工作的一些技巧。了解如何启用某些功能或为每个元命令找到帮助,将有助于您更好的使用它。

01 分号是必需的


PostgreSQL 遵守 ANSI SQL 标准,该标准规定了语句终止是分号。在psql中可以通过添加分号并按 Enter 来表示 SQL 语句的结束。
如果不添加分号,psql将只提供一个新行供您继续输入,如下所示。
 

pagila_dev=# select * from film
pagila_dev-# ;


在添加分号之前不会执行查询。

02 命令历史和分页

psql是一个终端应用程序,因此它保留了您执行过的查询和命令的历史记录。因此,您可以使用键盘上的向上和向下箭头翻阅以前的命令和语句。当您想多次运行一条语句但每次只更改过滤条件时,这很有用。
历史记录存储在本地客户端的文件中,这意味着它会因计算机而异。您还可以配置.psqlrc文件中的变量HISTFILE为使用 psql的每个数据库或服务器创建不同的历史文件。
要查看已运行命令的列表,请使用 \s 命令。

postgres=# \s

\c pagila_
\c pagila_dev
\df
\x
\df
select * from film
;
\s

03  自动完成(补全)


psql支持基于选项卡的自动完成。对于许多命令,您可以使用TAB键来触发自动补全或给出建议。如果您想列出一个表或连接到一个不同的数据库,请从元命令开始,然后开始键入对象名称并按TAB。如果有多个匹配项,psql将提供类似于 Linux 终端的可能匹配项。
 

04  扩展的结果表格式


我很早就了解到的psql第一个有用的提示之一是:有两种模式可以同时显示查询和元命令结果。通常,psql将以等宽字体格式化数据的行和列,并在合理范围内进行适当的填充量以使所有内容对齐。但是,当发生终端换行时,要弄清楚哪些数据与哪一列对应可能会很困难。
在这些情况下,您可以以“扩展”(expanded)格式打印结果,该格式本质上是每行的交叉表,在左侧显示列标题,在右侧显示每个值。在这种格式中,您可以一次一个地翻阅结果。
您可以使用命令 \x打开和关闭扩展模式。下面我们展示了数据库中的对象列表,首先是普通表模式,然后是扩展模式。
 

postgres=# \d
                  List of relations
Schema |          Name           | Type  |  Owner
--------+-------------------------+-------+----------
public | example_tbl             | table | postgres
public | pg_stat_statements      | view  | postgres
public | pg_stat_statements_info | view  | postgres
(3 rows)

postgres=# \x
Expanded display is on.
postgres=# \d
List of relations
-[ RECORD 1 ]-------------------
Schema | public
Name   | example_tbl
Type   | table
Owner  | postgres
-[ RECORD 2 ]-------------------
Schema | public
Name   | pg_stat_statements
Type   | view
Owner  | postgres
-[ RECORD 3 ]-------------------
Schema | public
Name   | pg_stat_statements_info
Type   | view
Owner  | postgres

05  退出 psql 会话


最后,我不希望您觉得自己无法摆脱交互式外壳。任何时候你想退出当前psql会话,只需使用元命令 \q 返回到你的终端提示符。
 

postgres=# \q

ryan@redgate-laptop:~$

06  系统对象和其他详细信息

当我们回顾下面的一些基本命令时,您会注意到一种模式,其中许多命令具有多种形式。在许多命令的末尾添加大写字母S将在输出中包含系统对象。此外,在命令末尾包含符号“+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值