TẢI DỮ LIỆU INFILE MySQL

Hướng dẫn này chỉ cho bạn cách sử dụng câu lệnh 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
1 để nhập tệp CSV vào bảng MySQL

Câu lệnh 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
1 cho phép bạn đọc dữ liệu từ tệp văn bản và nhập dữ liệu của tệp vào bảng cơ sở dữ liệu rất nhanh

Trước khi nhập file bạn cần chuẩn bị những thứ sau

  • Một bảng cơ sở dữ liệu mà dữ liệu từ tệp sẽ được nhập vào
  • Tệp CSV có dữ liệu khớp với số cột của bảng và loại dữ liệu trong mỗi cột
  • Tài khoản kết nối với máy chủ cơ sở dữ liệu MySQL, có các đặc quyền FILE và INSERT

Giả sử chúng ta có một bảng tên là

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
3 với cấu trúc sau

TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL

Ta sử dụng câu lệnh CREATE TABLE để tạo bảng

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
3 như sau

CREATE TABLE discounts ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(255) NOT NULL, expired_date DATE NOT NULL, amount DECIMAL(10 , 2 ) NULL, PRIMARY KEY (id) );

Code language: SQL (Structured Query Language) (sql)

Tệp 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
5 sau đây chứa dòng đầu tiên là tiêu đề cột và ba dòng dữ liệu khác

TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL

Câu lệnh sau nhập dữ liệu từ tệp  

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
0 vào bảng

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
3

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)

Trường của tệp được kết thúc bằng dấu phẩy được chỉ định bởi 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
2 và được bao quanh bởi dấu ngoặc kép được chỉ định bởi

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
3 ‘

Mỗi dòng của tệp CSV được kết thúc bằng một ký tự dòng mới được chỉ định bởi

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
4

Vì tệp có dòng đầu tiên chứa tiêu đề cột, không nên nhập vào bảng nên chúng tôi bỏ qua nó bằng cách chỉ định tùy chọn 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
5

Bây giờ, chúng ta có thể kiểm tra bảng

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
3 để xem dữ liệu đã được nhập hay chưa

SELECT * FROM discounts;

TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL

Chuyển đổi dữ liệu trong khi nhập

Đôi khi định dạng của dữ liệu không khớp với các cột mục tiêu trong bảng. Trong những trường hợp đơn giản, bạn có thể biến đổi nó bằng cách sử dụng mệnh đề

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
7 trong câu lệnh 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
1

Giả sử cột ngày hết hạn trong tệp 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
9 ở định dạng 

SELECT * FROM discounts;

0

TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL

Khi nhập dữ liệu vào bảng

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
3, chúng ta phải chuyển nó sang định dạng ngày của MySQL bằng cách sử dụng hàm str_to_date() như sau

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
1

Nhập tệp từ máy khách vào máy chủ cơ sở dữ liệu MySQL từ xa

Có thể nhập dữ liệu từ máy khách (máy tính cục bộ) vào máy chủ cơ sở dữ liệu MySQL từ xa bằng cách sử dụng câu lệnh

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
1

Khi bạn sử dụng tùy chọn 

SELECT * FROM discounts;

3 trong 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
1 , chương trình máy khách sẽ đọc tệp trên máy khách và gửi tệp đó đến máy chủ MySQL. Tệp sẽ được tải lên thư mục tạm thời của hệ điều hành máy chủ cơ sở dữ liệu e. g. , 

SELECT * FROM discounts;

5 trên Windows hoặc 

SELECT * FROM discounts;

6 trên Linux. Thư mục này không thể cấu hình hoặc xác định bởi MySQL

Hãy cùng xem ví dụ sau

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
5

Sự khác biệt duy nhất là tùy chọn

SELECT * FROM discounts;

3 trong câu lệnh. Nếu tải một tệp CSV lớn, bạn sẽ thấy rằng với tùy chọn 

SELECT * FROM discounts;

3, việc tải tệp sẽ chậm hơn một chút vì phải mất thời gian để chuyển tệp đến máy chủ cơ sở dữ liệu

Tài khoản kết nối với máy chủ MySQL không cần phải có đặc quyền FILE để nhập tệp khi bạn sử dụng tùy chọn

SELECT * FROM discounts;

3

Quá trình nhập tệp từ máy khách sang máy chủ cơ sở dữ liệu từ xa bằng cách sử dụng 

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
10 có một số vấn đề về bảo mật mà bạn cần lưu ý để tránh các rủi ro bảo mật tiềm ẩn

Nhập tệp CSV bằng MySQL Workbench

Bàn làm việc của MySQL cung cấp công cụ để nhập dữ liệu vào bảng. Nó cho phép bạn chỉnh sửa dữ liệu trước khi thực hiện thay đổi

Sau đây là các bước mà bạn muốn nhập dữ liệu vào bảng

Mở bảng mà dữ liệu được tải vào

TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL

Nhấp vào nút Nhập, chọn tệp CSV và nhấp vào nút Mở

TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL

Xem lại dữ liệu, nhấp vào nút Áp dụng

TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL
TẢI DỮ LIỆU INFILE MySQL

Bàn làm việc của MySQL sẽ hiển thị hộp thoại  “Áp dụng tập lệnh SQL vào cơ sở dữ liệu”, nhấp vào nút Áp dụng để chèn dữ liệu vào bảng

Chúng tôi đã chỉ cho bạn cách nhập CSV vào bảng MySQL bằng cách sử dụng

LOAD DATA INFILE 'c:/tmp/discounts.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

Code language: SQL (Structured Query Language) (sql)
10 và sử dụng MySQL Workbench. Với những kỹ thuật này, bạn có thể tải dữ liệu từ các định dạng tệp văn bản khác, chẳng hạn như được phân định bằng tab

Tải dữ liệu Infile trong MySQL là gì?

Câu lệnh LOAD DATA INFILE đọc các hàng từ tệp văn bản vào bảng với tốc độ rất cao . Nếu từ khóa ĐỊA PHƯƠNG được chỉ định, tệp được đọc từ máy khách. Nếu LOCAL không được chỉ định, tệp phải được đặt trên máy chủ. ( ĐỊA PHƯƠNG có sẵn trong MySQL 3. 22.

Làm cách nào để chạy tệp dữ liệu tải trong MySQL?

Phương pháp 2. Sử dụng Dòng lệnh và MySQL Workbench để tải dữ liệu từ tệp vào bảng trong MySQL .
Bước 1. Tạo bảng
Bước 2. Nhập dữ liệu vào bảng của bạn
Bước 3. Chuyển đổi dữ liệu trong khi nhập
Bước 4. Nhập tệp từ máy khách vào máy chủ cơ sở dữ liệu MySQL từ xa
Bước 5. Nhập tệp CSV bằng MySQL Workbench

Làm cách nào để nhập dữ liệu vào MySQL?

Nhập cơ sở dữ liệu từ một tệp . Fill in the fields with the connection information. Sau khi kết nối với cơ sở dữ liệu, hãy chuyển đến Nhập/Khôi phục dữ liệu. Chọn tùy chọn Nhập từ tệp tự chứa và chọn tệp. Chọn cơ sở dữ liệu đích trong Lược đồ mặc định được nhập vào và sau đó nhấp vào Bắt đầu nhập.

Làm cách nào để sử dụng tải dữ liệu cục bộ?

Bạn có thể sử dụng lệnh LOAD DATA INFILE để nhập tệp CSV vào bảng. .
Một bảng cơ sở dữ liệu mà dữ liệu từ tệp sẽ được nhập vào
Tệp CSV có dữ liệu khớp với số cột của bảng và loại dữ liệu trong mỗi cột