Ubuntu的lxterminal中如何让psql命令输出以美观表格展示?
如何在终端中让psql(及MySQL)的查询输出以美观表格展示
我之前也碰到过在lxterminal里用psql查询输出乱成一团的情况,特别是查information_schema.routines这种列超多的表,完全没法看!下面给你分享几个实用的解决办法,顺便也说下MySQL的对应操作~
针对psql的解决方法
psql默认在输出内容超过终端宽度时,会自动切换到“非对齐”模式,导致格式混乱,我们可以通过以下方式调整:
- 临时调整会话内的输出格式:在psql交互会话中,输入
\pset format aligned,这会强制启用对齐表格模式,不管内容多长都会保持规整的表格结构。如果终端宽度不够,还可以用\pset columns 120(把120换成你的终端实际宽度数值)来限制列宽,让内容自动换行但表格结构不变。 - 一次性执行命令时指定格式:如果不想进入psql交互会话,直接在终端执行命令时加上格式参数,比如:
psql -d 你的数据库名 -c "SELECT * FROM information_schema.routines;" --pset=format=aligned - 永久设置默认格式:修改用户目录下的
~/.psqlrc文件(如果没有就新建一个),添加以下内容,这样每次打开psql都会默认用美观的表格输出:# 设置对齐表格格式 \pset format aligned # 使用Unicode边框,表格更美观 \pset linestyle unicode # 显示完整边框 \pset border 2
针对MySQL的解决方法
MySQL命令行也会碰到类似的输出混乱问题,对应的解决方式如下:
- 启动时直接启用表格模式:启动MySQL客户端时加上
--table参数,比如:
这样查询输出会自动以对齐的表格形式展示。mysql -u 你的用户名 -p --table 你的数据库名 - 会话内调整输出方式:
- 如果已经在MySQL交互会话中,可以输入
\P less -S,让输出通过less分页显示,-S选项允许横向滚动,避免内容换行打乱表格结构。 - 对于MySQL 8.0及以上版本,还可以直接执行
SET session result_format=TABLE;来强制启用表格输出模式。
- 如果已经在MySQL交互会话中,可以输入
- 竖排显示替代方案:如果列实在太多,表格显示还是拥挤,可以用
\G代替分号结尾,比如:
这样每一行的字段和值会垂直排列,可读性会好很多。SELECT * FROM 你的表名 \G
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

