導出表數據到一個文本文件的最簡單方法是使用select… into outfile語句直接將導出查詢結果導出到服務器主機上的文件。
使用SELECT… INTO OUTFILE語句導出數據
語句的語法結合了常規的SELECT INTO與OUTFILE filename 末尾。默認的輸出格式與LOAD DATA是一樣的,所以下面的語句導出 tutorials_tbl 表到C:tutorials.txt 并使用制表符分隔,換行結尾的文件:
mysql>?SELECT?*?FROM?tutorials_tbl? ????->?INTO?OUTFILE?'C:tutorials.txt';
可以利用選項來說明如何引號和分隔列,更改記錄輸出格式。 使用CRLF為結束行導出tutorial_tbl 為CSV格式表格,使用以下語句:
mysql>?SELECT?*?FROM?passwd?INTO?OUTFILE?'C:tutorials.txt' ????->?FIELDS?TERMINATED?BY?','?ENCLOSED?BY?'"' ????->?LINES?TERMINATED?BY?'rn';
SELECT… INTO OUTFILE具有以下屬性:
-
輸出的文件是直接由MySQL服務器創建的,因此,文件名應指明想要的文件名,它會被寫到服務器主機上。還有就是語句類似于沒有LOCAL版本的LOAD DATA的本地版本。
- 必須有MySQL的FILE權限來執行SELECT … INTO語句。
- 輸出文件必須還不存在。 這防止MySQL弄錯文件很重要。
- 應該有服務器主機或某種方式來檢索該主機上登錄帳戶的文件。否則,SELECT … INTO OUTFILE可能沒有任何值給出。
- 在UNIX下,文件創建所有人都是可讀的,由MySQL服務器所擁有。這意味著,雖然能夠讀取該文件,可能無法將其刪除
導出表作為原始數據
mysqldump程序用于復制或備份表和數據庫。它可以寫入表輸出作為一個原始數據文件,或為一組重新創建表中的INSERT語句的記錄。
轉儲一個表作為一個數據文件,必須指定一個–tab 選項指定目錄,讓MySQL服務器寫入文件。
例如,從數據庫test中的tutorials_tbl表轉儲到一個文件在C:tmp目錄,可使用這樣的命令:
$?mysqldump?-u?root?-p?--no-create-info? ????????????--tab=c:tmp?TEST?tutorials_tbl password?******
推薦:mysql教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END