1. 程式人生 > >MySQL命令列格式化輸出  

MySQL命令列格式化輸出  

來自http://www.codesky.net/article/200907/168892.html

MySQL的客戶端命令行工具,有很多方便使用者的特性,某些方面甚至可以說比Oraclesqlplus更加人性化。當然從整體來說,還是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 [email protected]> PROMPT set to ‘[email protected]>’ [email protected](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 [email protected]mysql>

其中u表示當前連線的使用者,d表示當前連線的資料庫,其他更多的可選項可以參考man mysql

這裡再介紹下通過配置檔案來設定MySQL命令列的這些引數。

通過/etc/my.cnf配置檔案的[mysql]部分,可以設定MySQL命令列的一些執行引數。例如:

[mysql] prompt=\[email protected]\d \r:\m:\s> pager=’less -S’ tee=’/tmp/mysql.log’

通過prompt設定顯示使用者名稱,當前資料庫和當前時間,注意在配置檔案裡最好使用雙斜槓:

[email protected] 10:26:35>

通過pager設定使用less來顯示查詢結果,-S表示截斷超過螢幕寬度的行,一行太長MySQL的顯示格式就顯得很亂,如果要看完整的行,建議使用G將行垂直輸出。當然,你也可以新增更多less的引數來控制輸出。

tee則將MySQL執行的所有輸出儲存到一個日誌檔案中,即使使用less -S截斷了超長行,在日誌中還是會記錄整個的結果,另外,前面通過prompt設定了當前時間顯示,這樣也便於在日誌檔案中檢視每次操作的時間。由於tee的結果是附加到檔案中的,日誌檔案需要定期清除。

相關推薦

MySQL命令格式化輸出  

來自http://www.codesky.net/article/200907/168892.html MySQL的客戶端命令行工具,有很多方便使用者的特性,某些方面甚至可以說比Oracle的sqlplus更加人性化。當然從整體來說,還是sqlplus更加方便些,這麼說或許是我對sqlplus更加

mysql命令使用

連線資料庫   mysql -P 埠號 -h 遠端機地址/ip -u 使用者名稱 -p mysql -uroot -p123456   修改資料庫密碼 mysqladmin -uroot -p123456 password mysql> UPDATE m

MYSQL命令操作基本語句

首先進入MYSQL命令列控制介面:   1. 查詢所有資料庫: show databases;  (分號不能少) 2 進入某一資料庫 use + 資料庫名 + database;   Database changed表明已經

Mysql命令新增使用者,庫

建立使用者: 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 說明:username – 你將建立的使用者名稱, host –

MySQL 命令匯出、匯入Select 查詢結果

<!-- 環境: Windows 2003 SP2 + MySQL5.5.28 Author: 部落格園小dee -->   有的時候需要把在一張表中用 select 語句查詢出來的結果儲存到另一張結構相同的表中,可以有幾種方法來實現: 方法一: 在命令列下使

轉!mysql 命令下 通過DELIMITER臨時改變語句分隔符 執行儲存過程

mysql 在 Navicat 介面工具 執行儲存過程ok,但是在命令列下執行失敗。 原因在於,預設的MySQL語句分隔符為' ; ',在輸入' ; '的時候,“以為”語句已經結束了,但實際上語句還沒有結束。 解決方案:使用DELIMITER臨時改變命令列的語句分隔符,在儲存過程建立之後再修改分隔符為原來

mysql命令建立表,插入表資料

create table t_hero( id int unsigned auto_increment primary key, name varchar(10) unique not null, age tinyint unsigned default 0, gender set("男", "女"), st

mysql 命令訪問伺服器 失敗解決方案

問題所在:    使用者登入方式許可權設定問題 解決思路   修改登入方式 結果   就可以通過 命令 -h ip  的方式登入了 #先用本地連結方式連結 mysql -u root -p #使用使用者mysql mys

MySQL 命令神器:mycli

今天再推薦一款命令列神器 —— Mycli。 Mycli是一個MySQL命令列客戶端工具,具有自動完成和語法突出顯示功能。 它是由印度人基於python開發的一個工具,,適合初學者或者對資料庫熟悉但命令記不住的人群,能很好地克服記不住命令的困難。 官網:https://www.myc

navicat工具以及Mysql命令 資料庫無法登陸1045,密碼沒問題情況下的處理方案

問題說明:navicat premium 工具無法登陸Mysql,一直提示1045,  填入資訊是localhost,命令列無法通過localhost登陸 無需以下處理,用127.0.0.1進行登陸   localhost是否沒有對映到root mysql -u root -p -

mysql 命令引數

 參考連結: https://blog.csdn.net/zlxls/article/details/80164079 Usage: mysql [OPTIONS] [database] //命令方式 -?, --help //顯示幫助資訊並退出 -I, --hel

mysql命令各個引數解釋

Usage: mysql [OPTIONS] [database]   //命令方式 -?, --help          //顯示幫助資訊並退出 -I, --help 

mysql命令和navicat工具插入、刪除觸發器寫法

    親測新增資料庫中,新增a表中記錄,b表中相關資料跟隨變化。 提示:demiliter更換mysql結束符。由 ;變成$$(直接delimiter $$(直接回車))。 插入觸發器寫法: mysql> create trigger tr2 &nbs

mysql 命令操作(一)管理操作

1.查詢所有存在的資料庫 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysq

mysql 命令操作(四)高階sql語句

1.union,連線兩個以上的select語句的結果組合到一個結果集中,多個select語句中相同的資料會被刪除,多個union的select語句必須列數相同,比如第一個select選擇兩個列,那麼後續所有union的select語句都必須是兩列,不要求列的屬性一致,可以用u

mysql 命令處理(六)事務

mysql中,事務是一些資料庫操作語句,有3個特點: 1.只有使用了InnoD引擎的資料庫或者表支援事務 2.事務可以用來維護資料庫完整性,保證成批的sql語句要麼全執行,要麼全不執行,不會出現部分執行失敗導致不一致的情況 3.事務用來管理insert,update,d

MySQL命令插入中文是亂碼,同時報錯

今天學習MySQL操作時遇到了兩個問題(windows環境下,powershell): 問題 命令列插入中文資料時,報錯: Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 命

mysql命令字符集問題

mysql預設設定的字符集為gbk2312,mysql在安裝的時候,預設的是客戶端和伺服器都用了latin1,所以這就導致一個字符集和字元校驗不匹配的問題。 解決: 更新字符集為:gbk alter table 表名 modify 欄位名 原始欄位型別 character set g

mysql命令模式匯入sql檔案

連線mysql mysql -u root -p 檢視所有資料庫 show databases; 選擇資料庫 use 資料庫名; 匯入sql檔案 source sql檔案路徑;

mysql命令匯入sql檔案以及中文亂碼問題

1.用命令列切換到自己安裝的mysql軟體的bin目錄下 cd C:/Program Files/MySQL/MySQL Server 5.7/bin 2.登入輸入使用者名稱密碼: mysql -u root -p 3.切換資料庫  use zsfzx