萬盛學電腦網

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

MySQL 與 Excel 數據互導實戰:LOAD DATA INFILE 與 SELECT INTO OUTFILE

一、Excel → MySQL 導入

步驟

  1. Excel 中選中數據區域(含表頭可選) → 複製 → 新建工作簿粘貼。
  2. 另存為 「文本文件 (Tab 分隔) (*.txt)」,如 D:\data.txt。
  3. MySQL 建表結構與 txt 列順序一致。
  4. 命令行導入:
mysql> LOAD DATA INFILE 'D:\\data.txt' INTO TABLE `table_name`
    -> FIELDS TERMINATED BY '\t'
    -> LINES TERMINATED BY '\r\n'
    -> IGNORE 1 LINES;  -- 跳過表頭行

去除末尾回車符 (Windows 換行符殘留)

UPDATE `table_name` SET `last_col` = REPLACE(`last_col`, '\r', '');

二、MySQL → Excel 導出

方法一:SELECT INTO OUTFILE(服務器端文件,需 FILE 權限)

-- 導出為 Tab 分隔 txt
SELECT * INTO OUTFILE '/tmp/data.txt'
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
FROM `table_name` WHERE condition;

-- 導出為 CSV(逗號分隔,雙引號包裹)
SELECT * INTO OUTFILE '/tmp/data.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM `table_name`;
  • 文件生成於 MySQL Server 機器,目錄需 secure_file_priv 允許(或關閉該限制)。
  • 文件不能覆蓋已存在文件。

方法二:客戶端導出(無 FILE 權限適用)

# mysql 命令行重定向(Tab 分隔,含表頭)
mysql -u root -p -h host -P 3306 -D db_name -e "SELECT * FROM table_name" > /local/path/data.txt

# mysqldump 導出 CSV 格式
mysqldump -u root -p -h host -P 3306 --tab=/tmp --fields-terminated-by=',' --fields-enclosed-by='"' --lines-terminated-by='\n' db_name table_name

三、Excel 打開驗證

  1. Excel → 「數據」→ 「獲取外部數據」→ 「從文本/CSV」。
  2. 選擇導出文件,分隔符選「製表符」或「逗號」,編碼選 UTF-8,完成導入。

附:常用維護命令

-- 清空表數據(不可回滾,極快)
TRUNCATE TABLE `table_name`;

-- 刪除表數據(可回滾,慢)
DELETE FROM `table_name`;

-- 在指定列後新增列
ALTER TABLE `table_name` ADD `new_col` INT(10) NOT NULL AFTER `exist_col`;

注意事項

  • 導入前務必備份目標表。
  • 字符集一致:文件編碼、表字符集、連接字符集三者統一(推薦 utf8mb4)。
  • 大數據量導入建議:SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0; 導入後恢復並 COMMIT;。
  • secure_file_priv 限制導出目錄,查看:SHOW VARIABLES LIKE 'secure_file_priv';。
copyright © 萬盛學電腦網 all rights reserved