有谁知道从 shell 中使用一个很好的工具来查询数据库并获得可理解的结果?
在命令行上,我想从 SSH 查询数据库,mysql
但结果几乎不可读,因为终端屏幕没有格式。
如果我运行以下命令,则很难理解结果。
use mydb;
select * from db3_settings;
我知道我可以使用 phpMyAdmin 或 MySQLCC,但我正在寻找命令行解决方案。
有谁知道从 shell 中使用一个很好的工具来查询数据库并获得可理解的结果?
在命令行上,我想从 SSH 查询数据库,mysql
但结果几乎不可读,因为终端屏幕没有格式。
如果我运行以下命令,则很难理解结果。
use mydb;
select * from db3_settings;
我知道我可以使用 phpMyAdmin 或 MySQLCC,但我正在寻找命令行解决方案。
您可以使用\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)
有多种方法可以使结果更具可读性。
使用限制仅查看几行:
SELECT * FROM table LIMIT 10;
仅返回选择列:
SELECT a,b,c FROM table;
终止查询\G
以将当前语句发送到服务器以执行并使用垂直格式显示结果:
SELECT * FROM table \G
对于非 Windows 系统,您可以使用less
使输出格式化或更易读。
mysql > pager less -SFX;
mysql > select * from databasename.table;
它将 sql 输出通过管道传递给 less,提供可以使用光标键水平和垂直滚动的表格输出。按“q”退出
如果您不想要,请使用重置
mysql> nopager
在命令行中,您可以\G
在查询结束时使用,将返回记录的结果显示为单独的格式化记录(而不是长表),如下所示:
select * from <tablename> \G;