MySQL下SELECT...INTO OUTFILE導出文本文件命令

SELECT...INTO OUTFILE 'file_name'形式的SELECT能夠把被選擇的行寫入一個文件中。該文件被建立到服務器主機上,所以您必須擁有FILE權限,才能使用此語法。file_name不能是一個原有的文件。原有文件會阻止例如「/etc/passwd」的文件和數據庫表被銷燬。 

SELECT...INTO OUTFILE語句的主要做用是讓您能夠很是快速地把一個錶轉儲到服務器機器上。若是您想要在服務器主機以外的部分客戶主機上建立結果文件,您不能使用SELECT...INTO OUTFILE。在這種狀況下,您應該在客戶主機上使用好比「mysql –e "SELECT ..." > file_name」的命令,來生成文件。 

SELECT...INTO OUTFILE是LOAD DATA INFILE的補語;用於語句的exort_options部分的語法包括部分FIELDS和LINES子句,這些子句與LOAD DATA INFILE語句同時使用。參見(http://www.wzxue.com/db/mysql/05/15/20/

FIELDS ESCAPED BY用於控制如何寫入特殊字符。若是FIELDS ESCAPED BY字符不是空字符,則被用於在輸出中對如下字符設前綴: 
mysql

  • FIELDS ESCAPED BY字符sql

  • FIELDS [OPTIONALLY] ENCLOSED BY字符數據庫

  • FIELDS TERMINATED BY和LINES TERMINATED BY值的第一個字符服務器

  • ASCII 0(在編寫時接在轉義符後面的是ASCII ‘0’,而不是一個零值字節)spa


若是FIELDS ESCAPED BY字符是空字符,則沒有字符被轉義,而且NULL被做爲NULL輸出,而不是做爲\N輸出。指定一個空的轉義符不是一個好的主意。特別是當您的數據中的字段值包含剛被給予的清單中的字符時,更是如此。 

其緣由是您必須對全部FIELDS TERMINATED BY, ENCLOSED BY, ESCAPED BY或LINES TERMINATED BY字符進行轉義,才能可靠地讀取文件並返回。ASCII NUL被轉義,以便更容易地使用調頁程序觀看。 

生成的文件沒必要符合SQL語法,因此沒有其它的字符須要被轉義。 

在下面的例子中,生成一個文件,各值用逗號隔開。這種格式能夠被許多程序使用。 
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' 

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 

LINES TERMINATED BY '\n' 

FROM test_table;get

相關文章
相關標籤/搜索