MySQL - 將 CSV 檔案匯入資料庫

你好啊,未來的資料庫魔法師們!今天,我們將踏上一段令人興奮的旅程,進入 MySQL 的世界,並學習如何將 CSV 檔案匯入資料庫。別擔心如果你是新手;我會帶你一步步走過,就像我在課堂上用了多年的耐心一樣。我們一起來看看吧!

MySQL - Import CSV File into Database

CSV 檔案是什麼?

在我們開始匯入之前,讓我們先了解我們要處理的是什麼。CSV 是逗號分隔值(Comma-Separated Values)的縮寫。這就像是一個簡單的電子表格,保存為純文本檔案,每行是一個資料列,每行中的值用逗號分隔。想像它是一個整齊組織的資訊列表,非常適合在不同程式之間傳遞數據。

將 MySQL CSV 匯入資料庫

現在,讓我們來到有趣的部分 - 將我們的 CSV 檔案匯入 MySQL。有許多方法可以做到這點,但我們將專注於兩種主要方法:使用 MySQL 指令和使用 MySQL 客戶端程序。

方法 1:使用 MySQL 指令

這種方法涉及直接在 MySQL 中使用 SQL 指令。這就像是用 MySQL 的母語給它發出指示。讓我們一步步來:

  1. 首先,我們需要在數據庫中創建一個表來存放我們 CSV 檔案中的數據。以下是一個範例:
CREATE TABLE employees (
id INT,
name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10, 2)
);

這會創建一個名為 'employees' 的表,有 id、name、department 和 salary 几個欄位。根據你的 CSV 檔案結構進行調整。

  1. 接下來,我們使用 LOAD DATA INFILE 指令來匯入我們的 CSV:
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE employees
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

讓我們來分析這個指令:

  • /path/to/your/file.csv:將這個路徑替換為你的 CSV 檔案實際路徑。
  • INTO TABLE employees:指定匯入到哪個表。
  • FIELDS TERMINATED BY ',':告訴 MySQL 欄位是用逗號分隔的。
  • ENCLOSED BY '"':如果你的欄位是用引號包圍的,這會告訴 MySQL。
  • LINES TERMINATED BY '\n':表示每一個新行是一個新的資料列。
  • IGNORE 1 ROWS:如果你的 CSV 有表頭行,這會跳過它。

方法 2:使用 MySQL 客戶端程序

如果你偏好一種更視覺化的方法,你可以使用 MySQL 客戶端程序。這就像是用一個友好的介面與 MySQL 交談。

  1. 打開你的 MySQL 客戶端程序(例如 MySQL Workbench)。
  2. 連接到你的數據庫。 3.尋找像 "Table Data Import Wizard" 或 "Import" 的選項。
  3. 在提示時選擇你的 CSV 檔案。
  4. 跟隨向導的步驟將 CSV 欄位映射到表欄位。
  5. 點擊 'Import' 或 'Finish' 完成過程。

最佳實踐和建議

現在我們已經涵蓋了基礎知識,讓我分享一些我多年教學中累積的智慧:

  1. 在匯入之前總是備份你的數據庫。這就像在與大魔王作戰之前保存遊戲一樣 - 總是個好主意!

  2. 檢查你的 CSV 檔案是否有錯誤。一個放置錯誤的逗號可能會讓你的整個匯入過程失敗。相信我,我看見學生花了好幾個小時除錯,最後只找到一個隱藏的額外逗號!

  3. 先在測試數據庫上嘗試。這就像在購買前試穿衣服一樣 - 在將數據提交到主數據庫之前,確保一切完美契合。

  4. 注意數據類型。如果你的 CSV 中有日期,確保它們與 MySQL 的日期格式匹配。這就像在組合拼圖時確保拼圖片互相匹配一樣。

  5. 恰當處理 NULL 值。有時候,CSV 中的空字段會引起問題。決定你如何處理這些值 - 作為 NULL 或作為空字符串。

常見問題排解

即使準備充分,有時候事情還是會出差錯。以下是一些常見問題以及如何解決它們:

  1. "The MySQL server is running with the --secure-file-priv option":這是 MySQL 告訴你,“嘿,我不確定我是否有權讀取這個檔案!”。要解決這個問題:
  • 檢查 secure_file_priv 設定:SHOW VARIABLES LIKE "secure_file_priv";
  • 將你的 CSV 檔案移動到指定的目錄,或者調整你的 MySQL 配置。
  1. 數據出現在錯誤的欄位:重新檢查你的 FIELDS TERMINATED BYENCLOSED BY 設定。有時候,一個放置錯誤的引號會將一切搞亂。

  2. 匯入速度慢:對於大型檔案,嘗試將它們分割成小塊。這就像吃一個大披薩一樣 - 一片一片吃起來容易得多!

結論

恭喜你!你剛剛學會了如何將 CSV 檔案匯入 MySQL。記住,熟練是需要練習的。如果第一次沒有完全成功,不要氣餒 - 即使有經驗的開發人員有時也會在匯入時遇到困難。

這裡是我們討論過的方法的快速參考表:

方法 優點 缺點
MySQL 指令 直接控制,可編腳本 需要 SQL 知識
客戶端程序 用户友好,視覺化 對複雜匯入的靈活性較低

繼續探索,持續學習,最重要的是,與數據庫一起玩得開心!誰知道,也許有一天你也會教這個給別人!

Credits: Image by storyset