MySQL Linux命令行工具和正确格式化的结果[重复]
Posted
技术标签:
【中文标题】MySQL Linux命令行工具和正确格式化的结果[重复]【英文标题】:MySQL Linux command line tool and properly formatted results [duplicate] 【发布时间】:2013-10-15 06:07:18 【问题描述】:有没有人知道从 shell 中使用一个很好的工具来查询数据库并获得可理解的结果?
在命令行上,通过 SSH,我想使用 mysql
查询数据库,但结果几乎无法读取,因为终端屏幕没有格式。
如果我运行以下命令,则很难理解结果。
use mydb;
select * from db3_settings;
我知道我可以使用 phpMyAdmin 或 MySQLCC,但我正在寻找命令行解决方案。
【问题讨论】:
【参考方案1】:您可以通过多种方式使结果更具可读性。
使用限制只查看几行:
SELECT * FROM table LIMIT 10;
只返回选择列:
SELECT a,b,c FROM table;
用\G
终止您的查询,将当前语句发送到服务器以执行并使用垂直格式显示结果:
SELECT * FROM table \G
【讨论】:
【参考方案2】:您可以使用\G
获得垂直格式的输出。
这是标准输出:
mysql> select * from tblSettings;
+-----------+----------------+---------------------+
| settingid | settingname | settingvalue |
+-----------+----------------+---------------------+
| 1 | maxttl | 30 |
| 2 | traceroutepath | /usr/bin/traceroute |
| 3 | alertemail | me@host.com |
+-----------+----------------+---------------------+
3 rows in set (0.00 sec)
这就是\G
的输出:
mysql> select * from tblSettings \G;
*************************** 1. row ***************************
settingid: 1
settingname: maxttl
settingvalue: 30
*************************** 2. row ***************************
settingid: 2
settingname: traceroutepath
settingvalue: /usr/bin/traceroute
*************************** 3. row ***************************
settingid: 3
settingname: alertemail
settingvalue: me@host.com
3 rows in set (0.00 sec)
【讨论】:
包含\G
的含义会很有用,而且我相信\G
是一个终止符,因此您不需要分号来终止它,否则需要额外的查询。跨度>
【参考方案3】:
对于非 Windows 系统,您可以使用 less
使输出格式化或更具可读性。
mysql > pager less -SFX;
mysql > select * from databasename.table;
它将 sql 输出通过管道传递给 less,从而提供可以使用光标键水平和垂直滚动的表格输出。按'q'退出
如果你不想要,使用重置
mysql> nopager
【讨论】:
【参考方案4】:在命令行中,您可以通过在查询末尾使用\G
将返回记录的结果显示为单独的格式化记录(而不是长表),如下所示:
select * from <tablename> \G;
【讨论】:
此答案已被标记为低质量。如果它回答了问题,请考虑添加一些文字来解释它是如何工作的。以上是关于MySQL Linux命令行工具和正确格式化的结果[重复]的主要内容,如果未能解决你的问题,请参考以下文章