select * from test\G;html
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命令行支持的一些命令。 繼續上面的的話題,介紹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 * from test.test; 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 * from test.test; 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/my.cnf配置文件的[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的結果是附加到文件中的,日誌文件須要按期清除。