表數據導出到一個文本文件最簡單的方法是使用SELECT... INTO OUTFILE語句的查詢結果直接導出到一個文件在服務器主機上。
導出數據的SELECT...INTO OUTFILE聲明:
這句話的語法結合了常規的SELECT INTO OUTFILE文件名的末尾。默認的輸出格式是相同的LOAD DATA,所以下面的語句導出tutorials_tbl的表制表符分隔的,換行結尾的文件到/tmp/tutorials.txt:
| mysql> SELECT * FROM tutorials_tbl -> INTO OUTFILE '/tmp/tutorials.txt'; |
也可以更改輸出格式,使用選項來指示如何引用和分隔列和記錄。 CRLF終止線要導出tutorial_tbl的CSV格式的表格,使用這樣的語句:
| mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '/r/n'; |
SELECT ... INTO OUTFILE具有以下屬性:
由MySQL服務器直接創建輸出文件,這樣的文件名應指定您希望在服務器主機上的文件將被寫入。沒有本地版本的LOAD DATA LOCAL版本的類似的語句。 必須要有MySQL的FILE權限才能執行的SELECT... INTO語句。 輸出文件必須不存在。這可以防止MySQL從會破壞文件可能重要。 應該在服務器主機上或一些方法來檢索文件從該主機的登錄帳戶。否則SELECT... INTO OUTFILE可能是沒有價值的。 在Unix下,創造了世界可讀的文件和所擁有的MySQL服務器。這意味著雖然就可以讀取該文件,但是不能夠刪除它。作為原始數據的導出表:
使用mysqldump程序復制或備份表和數據庫。它可以寫表輸出的原始數據文件或為一組的INSERT語句重新創建該表中的記錄。
轉儲一個表,必須指定一個數據文件 - 選項卡上的選項,表示想要的MySQL服務器寫入文件所在的目錄。
使用mysqldump程序復制或備份表和數據庫。它可以寫表輸出的原始數據文件,或為一組的INSERT語句重新創建該表中的記錄。
轉儲一個表,必須指定一個數據文件 - 選項卡上的選項,表示想要的MySQL服務器寫入文件所在的目錄。
| $ mysqldump -u root -p --no-create-info / --tab=/tmp TUTORIALS tutorials_tblpassword ****** |
在SQL格式導出表的內容或定義:
一個表中的SQL格式導出到一個文件,使用這樣的命令:
| $ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txtpassword ****** |
這將創建文件的內容如下:
| -- MySQL dump 8.23---- Host: localhost Database: TUTORIALS----------------------------------------------------------- Server version 3.23.58---- Table structure for table `tutorials_tbl`--CREATE TABLE tutorials_tbl ( tutorial_id int(11) NOT NULL auto_increment, tutorial_title varchar(100) NOT NULL default '', tutorial_author varchar(40) NOT NULL default '', submission_date date default NULL, PRIMARY KEY (tutorial_id), UNIQUE KEY AUTHOR_INDEX (tutorial_author)) TYPE=InnoDB;---- Dumping data for table `tutorials_tbl`--INSERT INTO tutorials_tbl VALUES (1,'Learn PHP','John Poul','2007-05-24');INSERT INTO tutorials_tbl VALUES (2,'Learn MySQL','Abdul S','2007-05-24');INSERT INTO tutorials_tbl VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06'); |