本文将为您介绍一些 MySQL命令行所隐藏的能够用来消除这些额外按键工作的功能,也指明一条让您成为这一强大客户端高效用户的途径。
图像化导向的MySQL管理工具比比皆是,但真正能够提速而且并非“图有其表”的管理工具,可能没有哪一个比得上MySQL客户端驱动的命令行更有效了。不过,执行一般查询需要大量键盘输入工作,而且确定您目前正在登录的数据库以及快速监测数据库服务器的性能都会变得很单调乏味。
改变客户端提示符
如果每运行一次show tables来提醒自己目前所选择的是哪个数据库就能得到一块钱的话,估计现在我都成百万富翁了。事实上,当我们不停的定期在IDE、shell提示符和MySQL客户端提示符之间切换的时候,很容易就会迷失方向,不知道自己在哪里了。要从根本上消除这个问题,可以使用以下prompt命令来更改MySQL的提示符:
mysql>prompt mysql (\d)>
执行完该命令后,目前所选择的数据库就会在提示符中显示出来,如下:
mysql (corporate)>
此外,我们也很容易跟丢我们所登录的数据库服务器,更不用说正在使用的帐户了。要解决这个问题,通过使用\u 和\h 选项来更改提示符设置:
mysql>prompt mysql (\u@\h)>
执行命令的结果如下:
mysql (root@www.ctocio.com.cn)>
想要永久的保存这种更改设置,可以将以下的命令添加到.my.cnf 文件中:
[mysql] prompt=mysql \\d>
数据库、用户和主机选项只是很多可选选项的一个很小的部分而已,您可以参阅MySQL的说明文档以获取更多信息。
使用shell Alias(别名)来执行经常使用的MySQL命令
假设您的新web应用正逐步步入应用阶段,每个小时都有新用户注册。就像新股上市一样,您和您的同事需要经常关注注册用户的数量。但是,就为了执行一个简单的计数查询就需要不断的登录退出MySQL,显然不是很划算。如果您登录到服务器,您可以创建一个shell别名来实现登录到MySQL服务器、选择适当的数据库和执行计数命令整个过程:
以下为引用的内容: %>alias usrcount="mysql -u appadmin -p myapplication
-e \"select count(id) from users\""
|
在本例中,您想要使用appadmin用户帐户登录到本地MySQL服务器,选择myapplication数据库,然后利用SELECT查询来执行计数查询。而执行以上命令后,当您想要确定系统中有多少用户时,只需要执行以下的命令,并输入appadmin的用户密码就可以了:
以下为引用的内容: %>usrcount Enter password: +-------------+ | count(id) | +-------------+ | 348 | +-------------+ |
想要永久的保存这个别名,可以将其添加保存到.bashrc文件或类似的shell配置文件中。
以垂直格式表现查询结果
当表包含了很多列时,要在一个shell窗口中显示SELECT查询的结果就相当困难了。通过在查询中附加一个\G转换就可以很容易解决这一不便之处:
mysql>SELECT * from users WHERE id=1\G
执行这一查询会使输出结果表现如下:
以下为引用的内容: mysql test>select * from users where id=1\G
*************************** 1. row *********
id: 1
name: Nancy
email: Nancy@example.com
telephone: 861088888888
city: Beijing
1 row in set (0.00 sec)
|
从查询结果创建一个CSV文件
如果您能够很专业地使用数据库,那么很可能会有同事让您将数据从数据库中转存到一个Excel文件,以便进行进一步的分析。我们可以通过修改一个SELECT查询来执行所有的CSV格式化步骤,然后将数据放置到文本文件中。您需要做的只是要指出结束的字段和界限。例如,使用下面的命令可以将一个名为users的表转存到名为users.csv的CSV文件中:
以下为引用的内容: mysql>SELECT * FROM users INTO OUTFILE '/home/jason/users.csv' FIELDS TERMINATED BY '\t\' ->LINES TERMINATED BY '\n'; |