1. 程式人生 > >MySQL基礎之 導出導入之文本文件

MySQL基礎之 導出導入之文本文件

style ron 字符數 escape strong 命令 導出導入 nes lds

1、使用SELECT.......INTO OUTFILE導出文本文件

該文件被創建在服務器主機上,因此必須有文件寫入權限(FILE權限),才能使用此語法

語法:

select columnlist  from Table WHERE condition  into outfile filename [OPTIONS]
fields terminated by VALUE
fields [OPTIONALLY]  ENCLOSED BY VALUE
fields ESCAPED BY VALUE
lines STARTING by VALUE
lines terminated 
by VALUE

[OPTIONS]部分為可選參數,[OPTIONS]部分的語法包括FILED和LINES子句,其可能取值為:

● fields子句:在FIELDS子句中有三個子句:TERMINATED BY、 [OPTIONALLY] ENCLOSED BY和ESCAPED BY。

如果指定了FIELDS子句,則這三個子句中至少要指定一個。
(1)TERMINATED BY用來指定字段值之間的符號,例如,“TERMINATED BY ‘,‘”指定了逗號作為兩個字段值之間的標誌,默認為“\t”制表符。
(2)ENCLOSED BY子句用來指定包裹文件中字符值的符號,例如,“ENCLOSED BY ‘ " ‘”表示文件中字符值放在雙引號之間,

若加上關鍵字OPTIONALLY表示所有的值都放在雙引號之間,則只有CHAR和VARCHAR等字符數據字段被包括。

(3)ESCAPED BY子句用來指定轉義字符,例如,“ESCAPED BY ‘*‘”將“*”指定為轉義字符,取代“\”,如空格將表示為“*N”。
● LINES子句:在LINES子句中使用TERMINATED BY指定一行結束的標誌,如“LINES TERMINATED BY ‘?‘”表示一行以“?”作為結束標誌,默認值為“\n”。

LINES STARTING BY ‘‘表示每行數據開頭的字符,可以為單個或多個,默認不是有任何字符

如果在導出的時候沒有制定OPTIONS的參數,導入表的時候也不用指明這些參數。

註意:這個SELECT命令導出文本文件有限制,就是想要在服務器主機之外的部分客戶主機上創建結果文件,不能使用此參數。應該使用“mysql -e”命令。(就是我們使用客戶端連接遠程的服務器端的操作,怪不得TIDB數據庫不支持這個命令導出數據)

2、使用“mysql -e”命令導出文本文件.

這個就是說我們可以在命令模式下執行SQL指令,將查詢結果導入到一個類似與csv格式的文本文件中。

mysql -u root -p --execute="SELECT * from tablename" dbname >filename.txt

上面的select語句必須使用雙引號引起來。導出的數據使用制表符分割了。

3、使用LOAD DATA INFILE方式導入文本文件

LOAD DATA [LOCAL] INFILE ‘filename‘ INTO TABLE dataname.tablename [OPTION] [IGNORE number LINES]
fields terminated by VALUE
fields [OPTIONALLY]  ENCLOSED BY VALUE
fields ESCAPED BY VALUE
lines STARTING by VALUE
lines terminated by VALUE

● fields子句:在FIELDS子句中有三個子句:TERMINATED BY、 [OPTIONALLY] ENCLOSED BY和ESCAPED BY。

如果指定了FIELDS子句,則這三個子句中至少要指定一個。
(1)TERMINATED BY用來指定字段值之間的符號,例如,“TERMINATED BY ‘,‘”指定了逗號作為兩個字段值之間的標誌,默認為“\t”制表符。
(2)ENCLOSED BY子句用來指定包裹文件中字符值的符號,例如,“ENCLOSED BY ‘ " ‘”表示文件中字符值放在雙引號之間,

若加上關鍵字OPTIONALLY表示所有的值都放在雙引號之間,則只有CHAR和VARCHAR等字符數據字段被包括。

(3)ESCAPED BY子句用來指定轉義字符,例如,“ESCAPED BY ‘*‘”將“*”指定為轉義字符,取代“\”,如空格將表示為“*N”。
● LINES子句:在LINES子句中使用TERMINATED BY指定一行結束的標誌,如“LINES TERMINATED BY ‘?‘”表示一行以“?”作為結束標誌,默認值為“\n”。

LINES STARTING BY ‘‘表示每行數據開頭的字符,可以為單個或多個,默認不是有任何字符.

MySQL基礎之 導出導入之文本文件