MySQL - Nhập tệp CSV vào cơ sở dữ liệu

Xin chào các bạn tương lai của các phù thủy cơ sở dữ liệu! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của MySQL và học cách nhập tệp CSV vào cơ sở dữ liệu. Đừng lo lắng nếu bạn là người mới bắt đầu; tôi sẽ hướng dẫn bạn từng bước với sự kiên nhẫn mà tôi đã sử dụng trong lớp học trong nhiều năm. Hãy cùng nhau vào sâu hơn!

MySQL - Import CSV File into Database

Tệp CSV là gì?

Trước khi chúng ta bắt đầu nhập dữ liệu, hãy hiểu rõ chúng ta đang làm việc với cái gì. CSV viết tắt của Comma-Separated Values (Giá trị tách biệt bằng dấu phẩy). Nó giống như một bảng tính đơn giản được lưu dưới dạng tệp văn bản thuần túy, nơi mỗi dòng là một hàng, và các giá trị trong mỗi hàng được tách biệt bằng dấu phẩy. Hãy tưởng tượng nó như một danh sách thông tin được tổ chức gọn gàng, rất phù hợp cho việc truyền dữ liệu giữa các chương trình khác nhau.

Nhập CSV vào MySQL

Bây giờ, hãy chuyển sang phần thú vị - nhập tệp CSV của chúng ta vào MySQL. Có nhiều cách để làm điều này, nhưng chúng ta sẽ tập trung vào hai phương pháp chính: sử dụng lệnh MySQL và sử dụng chương trình MySQL client.

Phương pháp 1: Sử dụng lệnh MySQL

Phương pháp này liên quan đến việc sử dụng các lệnh SQL trực tiếp trong MySQL. Nó giống như đưa ra các hướng dẫn cho MySQL bằng chính ngôn ngữ của nó. Hãy phân tích nó từng bước:

  1. Thứ nhất, chúng ta cần tạo một bảng trong cơ sở dữ liệu của mình để chứa dữ liệu từ tệp CSV. Dưới đây là một ví dụ:
CREATE TABLE employees (
id INT,
name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10, 2)
);

Điều này tạo ra một bảng có tên 'employees' với các cột cho id, name, department và salary. Điều chỉnh nó dựa trên cấu trúc của tệp CSV của bạn.

  1. Bây giờ, chúng ta sử dụng lệnh LOAD DATA INFILE để nhập tệp CSV của chúng ta:
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE employees
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Hãy phân tích điều này:

  • /path/to/your/file.csv: Thay thế này bằng đường dẫn thực tế đến tệp CSV của bạn.
  • INTO TABLE employees: Chỉ định bảng nào để nhập dữ liệu.
  • FIELDS TERMINATED BY ',': Chỉ định rằng các trường được tách biệt bằng dấu phẩy.
  • ENCLOSED BY '"': Nếu các trường của bạn được bao quanh bởi dấu nháy kép, điều này sẽ thông báo cho MySQL biết.
  • LINES TERMINATED BY '\n': Chỉ định rằng mỗi dòng mới là một hàng mới.
  • IGNORE 1 ROWS: Nếu tệp CSV của bạn có hàng tiêu đề, điều này sẽ bỏ qua nó.

Phương pháp 2: Sử dụng chương trình MySQL Client

Nếu bạn thích một cách tiếp cận trực quan hơn, bạn có thể sử dụng chương trình MySQL client. Nó giống như sử dụng một giao diện thân thiện để nói chuyện với MySQL.

  1. Mở chương trình MySQL client của bạn (như MySQL Workbench).
  2. Kết nối với cơ sở dữ liệu của bạn.
  3. Tìm kiếm một tùy chọn như "Table Data Import Wizard" hoặc "Import".
  4. Chọn tệp CSV của bạn khi được yêu cầu.
  5. Theo dõi các bước của hướng dẫn để ánh xạ các cột CSV vào các cột bảng.
  6. Nhấp vào 'Import' hoặc 'Finish' để hoàn tất quá trình.

Các nguyên tắc tốt nhất và lời khuyên

Bây giờ chúng ta đã bao gồm các nguyên tắc cơ bản, hãy chia sẻ một số trí tuệ mà tôi đã tích lũy được trong nhiều năm giảng dạy:

  1. Luôn sao lưu cơ sở dữ liệu trước khi nhập dữ liệu. Đó là như việc lưu trò chơi trước khi vào trận chiến boss - luôn là một ý tưởng tốt!

  2. Kiểm tra tệp CSV của bạn cho lỗi. Một dấu phẩy sai vị trí có thể làm rối loạn toàn bộ quá trình nhập dữ liệu. Tin tôi đi, tôi đã thấy học sinh mất hàng giờ để gỡ lỗi chỉ để tìm ra một dấu phẩy thừa!

  3. Sử dụng cơ sở dữ liệu thử nghiệm trước. Đó là như thử đồ trước khi mua - hãy chắc chắn rằng mọi thứ phù hợp hoàn hảo trước khi cam kết với cơ sở dữ liệu chính của bạn.

  4. Chú ý đến các kiểu dữ liệu. Nếu tệp CSV của bạn có ngày tháng, hãy đảm bảo chúng khớp với định dạng ngày tháng của MySQL. Đó là như việc đảm bảo các mảnh ghép puzzle khớp trước khi ép chúng vào nhau.

  5. Xử lý các giá trị NULL đúng cách. Đôi khi, các trường trống trong CSV có thể gây ra vấn đề. Quyết định cách bạn muốn xử lý chúng - như NULL hoặc như chuỗi trống.

Khắc phục các vấn đề phổ biến

Dù có chuẩn bị kỹ lưỡng đến đâu, đôi khi mọi thứ vẫn có thể出错. Dưới đây là một số vấn đề phổ biến và cách giải quyết chúng:

  1. "MySQL server is running with the --secure-file-priv option": Đây là cách MySQL nói, "Ồ, tôi không chắc tôi có quyền đọc tệp này!" Để sửa lỗi này:
  • Kiểm tra cài đặt secure_file_priv: SHOW VARIABLES LIKE "secure_file_priv";
  • Di chuyển tệp CSV của bạn đến thư mục được chỉ định, hoặc điều chỉnh cấu hình MySQL của bạn.
  1. Dữ liệu xuất hiện trong các cột sai: Kiểm tra lại các cài đặt FIELDS TERMINATED BYENCLOSED BY. Đôi khi, một dấu nháy kép sai vị trí có thể làm rối loạn mọi thứ.

  2. Quá trình nhập dữ liệu có vẻ chậm: Đối với các tệp lớn, thử chia chúng thành các phần nhỏ hơn. Đó là như việc ăn một miếng pizza lớn - dễ dàng hơn nhiều nếu ăn từng miếng một!

Kết luận

Chúc mừng! Bạn vừa học cách nhập tệp CSV vào MySQL. Nhớ rằng, thực hành sẽ làm cho bạn hoàn hảo. Đừng nản lòng nếu nó không hoạt động hoàn hảo lần đầu tiên - ngay cả những nhà phát triển có kinh nghiệm đôi khi cũng gặp khó khăn với việc nhập dữ liệu.

Dưới đây là bảng tóm tắt các phương pháp chúng ta đã thảo luận:

Phương pháp Ưu điểm Nhược điểm
MySQL Commands Điều khiển trực tiếp, có thể viết kịch bản Cần kiến thức SQL
Client Program Thân thiện với người dùng, trực quan Ít linh hoạt cho các nhập dữ liệu phức tạp

Tiếp tục khám phá, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ với cơ sở dữ liệu! Ai biết được, có thể bạn sẽ dạy điều này vào một ngày nào đó!

Credits: Image by storyset