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
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> tee output.txt
Logging to file ‘output.txt’
或者
mysql> \T output.txt
Logging to file ‘output.txt’
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命令行支持的一些命令。
轉載自:http://www.ningoo.net/html/2008/mysql_cmdline_tips_g_pager_tee.html