有没有人知道从shell中查询数据库并获得可理解的结果的好工具?
在命令行上,从SSH,我想使用mysql
查询数据库,但结果几乎不可读,因为终端屏幕没有格式化。
如果我执行以下操作,则很难理解结果。
use mydb;
select * from db3_settings;
我知道我可以使用phpMyAdmin或MySQLCC,但我正在寻找命令行解决方案。
答案 0 :(得分:36)
您可以使用\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)
答案 1 :(得分:6)
有许多方法可以让结果更具可读性。
使用限制仅查看几行:
SELECT * FROM table LIMIT 10;
仅返回选择列:
SELECT a,b,c FROM table;
使用\G
终止查询,将当前语句发送到要执行的服务器,并使用垂直格式显示结果:
SELECT * FROM table \G
答案 2 :(得分:1)
在命令行中,您可以在查询结束时使用\G
将返回记录的结果显示为单独的格式化记录(而不是长表),如下所示:
select * from <tablename> \G;
答案 3 :(得分:1)
对于非Windows系统,您可以使用ngViewAfterInit() {
if(FileType == 'AUDIO'){
this.audioplayer.nativeElement.load();
}
if(FileType == 'VIDEO'){
this.videoplayer.nativeElement.load();
}
}
使输出格式化或更具可读性。
less
它将sql输出管道输出为less表示可以使用光标键水平和垂直滚动的表格输出。按“q&#39;
退出如果您不想要,请使用
重置mysql > pager less -SFX;
mysql > select * from databasename.table;
答案 4 :(得分:0)
mysql
的{{1}}命令来自ego
的{{1}}命令:
ego(\ G)将命令发送到mysql服务器,垂直显示结果。
因此,通过在mysql
附加help
,您可以获得非常干净的垂直输出:
\G
你可以告诉MySQL使用select
寻呼机及其mysql> SELECT * FROM db3_settings \G;
选项来切断宽线,并为你提供一个可以用箭头键滚动的输出:
less
因此,下次运行具有宽输出的命令时,MySQL将允许您使用-S
寻呼机浏览输出:
mysql> pager less -S
如果您已完成寻呼机并希望返回less
上的常规输出,请使用以下命令:
mysql> SELECT * FROM db3_settings;