Đôi khi bạn có thể cần phải chèn nhiều hàng dữ liệu trong MySQL. MySQL cho phép bạn nhập nhiều hàng thông tin với một truy vấn duy nhất. Trong bài viết này, chúng ta sẽ xem xét cách chèn nhiều hàng trong MySQL.
Cách Chèn Nhiều Hàng trong MySQL
Dưới đây là các bước để chèn nhiều hàng trong MySQL. Có nhiều cách để chèn nhiều hàng trong MySQL. Chúng ta sẽ xem xét từng cách tiếp cận một.
Chèn nhiều hàng bằng INSERT
Giả sử bạn có bảng sau nhân viên (id, first_name, last_name) .
mysql> create table employees(id int, first_name varchar(255), last_name varchar(255));
Đây là cú pháp để chèn nhiều hàng bằng câu lệnh INSERT.
INSERT INTO table_name(column1, column2, ...), values(row1_value1, row1_value2,...), (row2_value1, row2_value2,...), ...
Trong truy vấn trên, bạn cần đề cập đến tên bảng của mình mà bạn cần chèn giá trị vào. Tiếp theo, bạn cần nhập các giá trị của mỗi hàng được đặt trong dấu ngoặc tròn ‘()’ theo cách được phân tách bằng dấu phẩy.
Đây là truy vấn SQL để chèn nhiều hàng thông tin trong nhân viên bảng.
mysql> insert into employees(id, first_name, last_name)
values(1,'John','Doe'),
(2,'Jane','Doe');
mysql> select * from employees;
+------+------------+-----------+
| id | first_name | last_name |
+------+------------+-----------+
| 1 | John | Doe |
| 2 | Jane | Doe |
+------+------------+-----------+
Chèn nhiều hàng từ SELECT
Bạn cũng có thể chèn nhiều hàng dữ liệu vào bảng của mình bằng cách sử dụng kết quả của truy vấn CHỌN.
Đây là cú pháp truy vấn SQL để sao chép dữ liệu từ bảng này sang bảng khác bằng cách sử dụng câu lệnh INSERT INTO.
INSERT INTO table1 (column1, column2, ...) select column1, column2, ... from table2
Trong truy vấn trên, chúng tôi chọn column1, column2,… từ table2 và chèn chúng vào table1.
Xin lưu ý, các cột được sử dụng trong câu lệnh INSERT INTO và câu lệnh SELECT phải có cùng tên và thứ tự. Nếu không, bạn sẽ gặp lỗi.
Đây là truy vấn SQL để sao chép dữ liệu từ nhân viên bảng cho nhân viên2 bảng.
mysql> insert into employees2(id, first_name, last_name) select id, first_name, last_name from employees; mysql> select * from employees2; +------+------------+-----------+ | id | first_name | last_name | +------+------------+-----------+ | 1 | John | Doe | | 2 | Jane | Doe | +------+------------+-----------+
Chèn nhiều hàng mà không trùng lặp
Nếu bạn muốn tự động tránh các bản ghi trùng lặp khi bạn chèn nhiều giá trị vào bảng của mình, hãy sử dụng từ khóa BỎ QUA sau khi CHÈN trong truy vấn SQL của bạn.
Tuy nhiên, điều này chỉ hoạt động đối với các bảng có khóa chính.
Đây là một ví dụ,
mysql> create table employees(id int primary key, first_name varchar(255), last_name varchar(255)); mysql> insert ignore into employees(id, first_name, last_name) values(1,'John','Doe'), (1,'John','Doe'); mysql> select * from employees; +----+------------+-----------+ | id | first_name | last_name | +----+------------+-----------+ | 1 | John | Doe | +----+------------+-----------+
Như bạn có thể thấy, chỉ có 1 hàng được chèn thay vì hai hàng trùng lặp.
Ubiq giúp dễ dàng trực quan hóa dữ liệu và theo dõi chúng trong trang tổng quan thời gian thực. Dùng thử Ubiq miễn phí.