运维日记|postgresql-利剑出鞘-psql出手,天下我有

运维日记|postgresql-利剑出鞘-psql出手,天下我有

解决方案goocz2025-02-01 11:14:5715A+A-

小编最近看了电影《利剑出鞘》,结局中,反派错拿了一把道具刀导致报复失败,所以说,选对工具很重要。


在postgresql数据库中,有这样一个工具不得不提,那就是psql,掌握好psql,那么在运维管理postgresql中,将如鱼得水,无往不利。


作为一种交互式终端,psql之于postgresql,就如sqlplus之于oracle,但是psql的功能却比sqlplus强大的多得多!


下面,小编将介绍psql的详细用法,从最常用的开始,到psql的高级特性!


No.1

连接数据库


首先从最简单的连接数据库开始!例子如下:

-U 指定用,default postgres。

-d 指定数据库。

-h 指定服务器, default: "local socket"。

-p 指定端口,default 5432。

-W 强制在连接数据库前输入密码。


No.2

交互查询信息


一般情况下,如果我们想要获取数据库的信息,需要完整的查询命令,比如:


对于懒人来说,能减少输入的工作无疑是非常令人开心的。,在psql中就是这样一个懒人工具,提供缩写命令,往往2、3个字符,就可以得到你想要的结果!

比如和上述例子中同样效果,仅需输入 “\l” !


更贴心的是,即便这些简单的快捷命令您也不需记忆,输入”\?” ,命令和解释一应俱全!


如果想知道这些快捷命令底层调用的语句是什么,只需要在pslq登陆的时候,加上 “-E”即可!


除了查询命令,psql连建立、修改对象的语法都可以直接看到,“\h (命令)“。psql工具真的是使用者的“小棉袄”!


No.3

控制输出格式


数据库自动化监控需求的日益增长,为了方便变量的代入,输出格式愈发重要。下面来看看psql中控制输出格式的方式!


常用的如下:

\t : 去掉列名和(n rows),只显示结果。

\a : 去掉结果之间的空格。


效果如下:


这样就非常方便取值。甚至中间的分割符也可以修改。


例如:\pset fieldsep & 。这样分隔符就变成了 “&“。


或者\pset fieldsep_zero on 取消分隔符。当然\pset 还有其他用法,通过 \pset option value 设置,这里就不一一赘述了!


温馨提示:\pset设置仅当前会话生效!


No.4

高级特性之变量设置


psql中可以像脚本语言一样去设置变量。如下:

看到了吗!变量既可以作为一个值插入,也可以作为一个近义词!


区别在于:作为值的时候,要用冒号加上单引号,作为近义词时,要用冒号加上双引号或者不加双引号。


No.5

高级特性之自动运维脚本添加


很多时候,需要快速的去查看数据库的相关信息,如果能节约输入命令的时间,这是最好不过了。psql就提供了这样一种方式,类似于secureCRT中的按钮栏(如下截图所示),可以快速执行命令。


编辑 postgresql管理用户家目录下下的 .psqlrc文件。格式为 \set 自定义名字 ‘查询内容’。


注意:查询内容中有引号需要转义符转义!如下例子:


让我们看下效果:

可以看到,直接 :自定义名字 就可以查询!


psql的用法除了上述其实还有很多,这里就介绍这些比较常用的,其他的小伙伴们可以自己探索!

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5