mysql字符输出格式_mysqlselect格式化输出
select * from test\G;
MySQL的客户端命令⾏⼯具,有很多⽅便使⽤者的特性,某些⽅⾯甚⾄可以说⽐Oracle的sqlplus更加⼈性化。当然从整体来说,还是sqlplus更加⽅便些,这么说或许是我对sqlplus更加熟悉吧。这⾥记录下MySQL命令⾏⼏个⽐较常⽤的特性。
1.使⽤G按⾏垂直显⽰结果
如果⼀⾏很长,需要这⾏显⽰的话,看起结果来就⾮常的难受。在SQL语句或者命令后使⽤G⽽不是分号结尾,可以将每⼀⾏的值垂直输出。这个可能也是⼤家对于MySQL最熟悉的区别于其他数据库⼯具的⼀个特性了。
mysql> select * from db_archivelog\G
*************************** 1. row ***************************
id: 1
check_day: 2008-06-26
db_name: TBDB1
arc_size: 137
格式化命令format参数arc_num: 166
per_second: 1.6
avg_time: 8.7
2.使⽤pager设置显⽰⽅式
如果select出来的结果集超过⼏个屏幕,那么前⾯的结果⼀晃⽽过⽆法看到。使⽤pager可以设置调⽤os的more或者less等显⽰查询结果,和在os中使⽤more或者less查看⼤⽂件的效果⼀样。
使⽤more
mysql> pager more
PAGER set to ‘more’
mysql> P more
PAGER set to ‘more’
使⽤less
mysql> pager less
PAGER set to ‘less’
mysql> P less
PAGER set to ‘less’
还原成stdout
mysql> nopager
PAGER set to stdout
3.使⽤tee保存运⾏结果到⽂件
这个类似于sqlplus的spool功能,可以将命令⾏中的结果保存到外部⽂件中。如果指定已经存在的⽂件,则结果会附加到⽂件中。
mysql>
Logging to file ‘’
或者
mysql>
Logging to file ‘’
mysql> notee
Outfile disabled.
或者
mysql> t
Outfile disabled
4.执⾏OS命令
mysql> system uname
Linux
mysql> ! uname
Linux
5.执⾏SQL⽂件
mysql> source test.sql
+—————-+
| current_date() |
+—————-+
| 2008-06-28 |
+—————-+
1 row in set (0.00 sec)
或者
mysql> . test.sql
+—————-+
| current_date() |
+—————-+
| 2008-06-28 |
+—————-+
1 row in set (0.00 sec)
其他还有⼀些功能,可以通过help或者?获得MySQL命令⾏⽀持的⼀些命令。
继续上⾯的的话题,介绍mysql命令⾏的⼀些⼩技巧
1.以html格式输出结果
使⽤mysql客户端的参数–html或者-T,则所有SQL的查询结果会⾃动⽣成为html的table代码
$ mysql -uroot –html Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3286 Server version: 5.1.24-rc-log MySQL Community Server (GPL) Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer. mysql> select * st;
2 rows in set (0.00 sec)
2.以xml格式输出结果
跟上⾯差不多,使⽤–xml或者-X选项,可以将结果输出为xml格式
$ mysql -uroot –xml Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3287 Server version: 5.1.24-rc-log MySQL Community Server (GPL) Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer. mysql> select * st;
2 rows in set (0.00 sec)
3.修改命令提⽰符
使⽤mysql的–prompt=选项,或者进⼊mysql命令⾏环境后使⽤prompt命令,都可以修改提⽰符
mysql> prompt u@d> PROMPT set to ‘u@d>’ root@(none)>use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed root@mysql>
其中u表⽰当前连接的⽤户,d表⽰当前连接的数据库,其他更多的可选项可以参考man mysql
这⾥再介绍下通过配置⽂件来设置MySQL命令⾏的这些参数。
通过/etc/myf配置⽂件的[mysql]部分,可以设置MySQL命令⾏的⼀些运⾏参数。例如:
[mysql] prompt=\u@\d \r:\m:\s> pager=’less -S’ tee=’/tmp/mysql.log’
通过prompt设置显⽰⽤户名,当前数据库和当前时间,注意在配置⽂件⾥最好使⽤双斜杠:
root@poster 10:26:35>
通过pager设置使⽤less来显⽰查询结果,-S表⽰截断超过屏幕宽度的⾏,⼀⾏太长MySQL的显⽰格式就显得很乱,如果要看完整的⾏,建议使⽤G将⾏垂直输出。当然,你也可以添加更多less的参数来控制输出。
tee则将MySQL执⾏的所有输出保存到⼀个⽇志⽂件中,即使使⽤less -S截断了超长⾏,在⽇志中还是会记录整个的结果,另外,前⾯通过prompt设置了当前时间显⽰,这样也便于在⽇志⽂件中查看每次操作的时间。由于tee的结果是附加到⽂件中的,⽇志⽂件需要定期清除。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。