您好,登錄后才能下訂單哦!
本篇內容介紹了“MySQL表數據的導入與導出方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
LOAD DATA INFILE語句可以快速將文本記錄導入到表中, SELECT ... INTO OUTFILE可以將表中數據導入到文件中,兩者的FIELDS、LINES子句語法相同。
執行語句的用戶需要有FILE權限,且mysql用戶對數據文件可讀。
mysqlimport也可以實現將文本文件導入到表中,mysqlimport也是向服務器調用LOAD DATA INFILE語句,--local選項可以讀取客戶端的文件。
LOAD DATA INFILE語法如下:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_name [PARTITION (partition_name,...)] [CHARACTER SET charset_name] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ] [IGNORE number {LINES | ROWS}] [(col_name_or_user_var,...)] [SET col_name = expr,...]
LOCAL
當指定local時,客戶端將讀取文件發送到服務器操作系統的臨時目錄(非MySQL臨時目錄),如空間不如將導致執行失敗。如未指定local,則會從服務器讀取,相對路徑是相對于data_dir的路徑。
LOAD DATA INFILE:當數據非法或數據唯一索引沖突將導致執行失敗。 LOAD DATA LOCAL INFILE:因為服務器端無法終止客戶端文件發送,當數據非法或數據唯一索引沖突時將會警告忽略錯誤繼續,類似IGNORE。
REPLACE
出現數據唯一索引沖突將會替代現有的記錄
IGNORE
出現數據唯一索引沖突將會被忽略。如果IGNORE與REPLACE都沒指定,則取決于LOCAL選項。如果local也沒有指定,則重復數據之后的文件數據將被不會執行,如指定local,則會忽略沖突繼續執行。
IGNORE number LINES
指定跳過文件開頭的幾行記錄
LOAD DATA INFILE用法:
默認load data infile的格式(不指定FIELDS,LINES選項) FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' 導入csv文件 LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES; 導入包含指定列的文件 LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' (column2,column3); 導入文件設定指定列的值 LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' (column1,column2) set column3 = CURRENT_TIMESTAMP;;
SELECT ... INTO OUTFILE會將查詢結果寫入到服務器,因此需要有FILE權限,同時需要對指定的路徑有寫入權限,且指定文件不能是服務器已有文件。
客戶端生成指定結果文件可使用mysql -e "SELECT ..." > file_name
SELECT ... INTO OUTFILE與LOAD DATA INFILE的FIELDS、LINES子句語法相同。
OPTION選項含義如下:
FIELDS TERMINATED BY 'value'
設置字段之間的分隔字符,可以為單個或多個字符,默認為制表符'\t'
FIELDS [OPTIONALLY] ENCLOSED BY 'value'
設置字段的包圍字符,只能為單個字符
FIELDS ESCAPED BY 'value'
設置轉義字符,只能為單個字符,默認值為‘\’
LINES STARTING BY 'value'
設置每行數據開頭的字符,可以為單個或多個字符,默認情況下不使用任何字符
LINES TERMINATED BY 'value'
設置每行數據結尾的字符,可以為單個或多個字符,默認值為'\n',WINDOWS回車換行符為'\r\n'
導出csv格式的文件 SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
mysqldump -T path dbname tbl_name 也可以生成文本文件,在path目錄生成一個tbl_name.sql表定義文件和tbl_name.txt文件表數據文件,可以指定fields與lines選項指定生成數據文件的格式。
“MySQL表數據的導入與導出方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。