一、Excel → MySQL 導入
步驟
- Excel 中選中數據區域(含表頭可選) → 複製 → 新建工作簿粘貼。
- 另存為 「文本文件 (Tab 分隔) (*.txt)」,如
D:\data.txt。
- MySQL 建表結構與 txt 列順序一致。
- 命令行導入:
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 打開驗證
- Excel → 「數據」→ 「獲取外部數據」→ 「從文本/CSV」。
- 選擇導出文件,分隔符選「製表符」或「逗號」,編碼選 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';。