MySQL允許將數據導出到外部文件,自然也允許將外部文件導入資料庫,本文為大家講解使用LOAD DATA INFILE從外部文本文件高速地讀取行導入數據表中
語法結構
LOAD DATA INFILE 『filename.txt』 INTO TABLE tablename [OPTION] [IGNORE number LINES]釋義1.filename.txt:要導入的文件路徑及文件名,必須是TXT文件2.OPTION:選項參數FIELDS TERMINATED BY 『val』:設置欄位間的分割字符,默認』\t』;FIELDS [OPTIONALLY]ENCLOSED BY 『val』: 設置欄位包圍字符,如果使用了OPTIONALLY則只能使用CHAR或VARCHAR格式字符FIELDS ESCAPED BY 『val』:轉義字符,默認為』\』LINES STARTING BY 『val』:每行的開頭字符,默認不使用任何字符LINES TERMINATED BY 『val』:每行的結尾字符,默認為』\n』3.IGNORE number LINES:從開始忽略多少行,number指的是行數
示例1.導入文本文件,不帶設置項,不忽略行數
查看現有的t_user表
查看要導入的文本文檔t_user.txt中的數據
# 執行命令
LOAD DATA INFILE 'G:\sqlbak\\t_user.txt' INTO TABLE test.t_user;
# 由於\t是轉義字符,所以本文多加了個反斜槓,要注意哦
查看當前測試表數據,可以看到數據都已經導入了
示例2.導入帶格式的文本文件
清空當前測試表
查看要導入的文本文檔t_user_2.txt中的數據,可見該文本數據是有對應的格式的
# 執行命令
LOAD DATA INFILE 'G:\sqlbak\\t_user_2.txt' INTO TABLE test.t_userFIELDSTERMINATED BY ','ENCLOSED BY '\"'ESCAPED BY '\''LINESTERMINATED BY '\r\n';
查看當前測試表數據,可見數據導入成功
示例3.導入文本文件,帶可選設置項,忽略前3行
清空當前數據表
查看要導入的文本文檔t_user_2.txt中的數據,可見該文本數據是有對應的格式
# 執行命令
LOAD DATA INFILE 'G:\sqlbak\\t_user_2.txt' INTO TABLE test.t_userFIELDSTERMINATED BY ','ENCLOSED BY '\"'ESCAPED BY '\''LINESTERMINATED BY '\r\n'IGNORE 3 LINES;
查看當前測試表數據,可見除前三行外的數據都導入成功了。