萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 數據導入導出實戰:LOAD DATA INFILE、SELECT INTO OUTFILE、字段映射、本地導入

導出:SELECT INTO OUTFILE (服務端文件)

SELECT 
  employee.id, employee.first_name, employee.last_name,
  employee.start_date, employee.salary, employee.city
FROM employee 
INTO OUTFILE 'C:/employee.txt'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
  • 需 FILE 權限,受 secure_file_priv 限制。
  • 默認 Tab 分隔、無引號、\n 換行。
  • 可自定義 FIELDS TERMINATED BY、ENCLOSED BY、LINES TERMINATED BY。

導入:LOAD DATA INFILE (服務端文件)

LOAD DATA INFILE 'C:/employee.txt'
INTO TABLE employee 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
(id, first_name, last_name, start_date, salary, city);
  • 字段列表指定映射順序,CSV 首行無表頭時必須指定。
  • 缺失字段按默認值/NULL 填充。

本地文件導入:LOAD DATA LOCAL INFILE (客戶端文件)

mysql> LOAD DATA LOCAL INFILE 'C:/mytable.txt' INTO TABLE mytable 
       LINES TERMINATED BY '\r\n';
  • 文件在**客戶端**機器,通過協議傳輸到服務端。
  • 需客戶端與服務端均啟用 local_infile=1。
  • 適合應用服務器直接導入本地 CSV,無需上傳到數據庫服務器。

命令行導出/導入管道

# 導出
mysql -h host -u user -p -e "SELECT * FROM db.tbl" > data.txt

# 導入 (配合 LOAD DATA LOCAL INFILE)
mysql -h host -u user -p --local-infile=1 -e "LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE db.tbl"

字符集與編碼注意

  • 導出文件編碼 = 連接字符集 (SET NAMES / --default-character-set)。
  • 導入時指定 CHARACTER SET utf8mb4 確保正確解碼。
  • Excel 兼容:導出 ENCLOSED BY '"' TERMINATED BY ',' LINES TERMINATED BY '\r\n',另存為 CSV UTF-8 (BOM) 最穩。
copyright © 萬盛學電腦網 all rights reserved