mysql查詢顯示技巧

工程師WWW發表於2014-08-29

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命令列支援的一些命令。

相關文章