Sao chép dữ liệu từ bảng này vào bảng khác trong MySQL

Sao chép dữ liệu từ bảng này vào bảng khác trong MySQL

– Trong hệ quản trị cơ sở dữ liệu MySQL, để sao chép dữ liệu ( những hàng ) từ một bảng này vào bên trong một bảng khác thì tất cả chúng ta hoàn toàn có thể sử dụng một trong hai cú pháp như sau .

Cú pháp 1

– Cú pháp này được sử dụng trong trường hợp tất cả chúng ta muốn sao chép dữ liệu từ toàn bộ những cột của bảng table1 vào bên trong bảng table2 ( Lưu ý : Khi sử dụng cú pháp này thì số cột của bảng table2 phải bằng với số lượng cột của bảng table1, nếu không thì khi thực thi lệnh sẽ bị lỗi )

INSERT INTO table2
SELECT *
FROM table1
WHERE condition;

Cú pháp 2

– Cú pháp này thường được sử dụng trong những trường hợp tất cả chúng ta muốn sao chép dữ liệu từ một số ít cột nào đó của bảng table1 vào 1 số ít cột nào đó của bảng table2 .

INSERT INTO table2 (column1, column2, column3,. .. .)
SELECT column1, column2, column3,. .. .
FROM table1
WHERE condition;

Tham khảo một số ví dụ

– Trong bài học này, tôi sẽ dùng hai cái bảng Customers & Student như bên dưới để làm một số ví dụ minh họa:

CustomerName Gender Address City
Nguyễn Thành Nhân Nam 63 Hoàng Văn Thụ Cần Thơ
Lưu Đức Hoa Nam 16 Nguyễn Văn Cừ Vĩnh Long
Phan Kim Liên Nữ Tổ 6 – Hoàng Hoa Thám Sóc Trăng
Tây Môn Khánh Nam Số 4A Đinh Lễ Cần Thơ
Doãn Quốc Thiên Thanh Nữ 164 Lê Thánh Tông An Giang
Phạm Thị Tuyết Nhung Nữ Số 169 Trần Quang Diệu Bạc Liêu
Châu Tinh Trì Nam Số 811 Giải Phóng Cần Thơ
HoTen GioiTinh DiaChi ThanhPho
Ông Hoàng Dược Sư Nam 378 Trần Quang Diệu Đà Nẵng

Ví dụ 1 :
– Sao chép hàng loạt dữ liệu từ bảng Customers vào bảng Student

INSERT INTO Student
SELECT *
FROM Customers;

– Sau khi thực thi câu lệnh phía trên thì cái bảng Student sẽ trở thành :

HoTen GioiTinh DiaChi ThanhPho
Ông Hoàng Dược Sư Nam 378 Trần Quang Diệu Đà Nẵng
Nguyễn Thành Nhân Nam 63 Hoàng Văn Thụ Cần Thơ
Lưu Đức Hoa Nam 16 Nguyễn Văn Cừ Vĩnh Long
Phan Kim Liên Nữ Tổ 6 – Hoàng Hoa Thám Sóc Trăng
Tây Môn Khánh Nam Số 4A Đinh Lễ Cần Thơ
Doãn Quốc Thiên Thanh Nữ 164 Lê Thánh Tông An Giang
Phạm Thị Tuyết Nhung Nữ Số 169 Trần Quang Diệu Bạc Liêu
Châu Tinh Trì Nam Số 811 Giải Phóng Cần Thơ

Ví dụ 2:

– Sao chép dữ liệu của những người mua sống tại Cần Thơ trong bảng Customers vào bảng Student

INSERT INTO Student
SELECT *
FROM Customers
WHERE City = "Cần Thơ";

– Sau khi thực thi câu lệnh phía trên thì cái bảng Student sẽ trở thành :

HoTen GioiTinh DiaChi ThanhPho
Ông Hoàng Dược Sư Nam 378 Trần Quang Diệu Đà Nẵng
Nguyễn Thành Nhân Nam 63 Hoàng Văn Thụ Cần Thơ
Tây Môn Khánh Nam Số 4A Đinh Lễ Cần Thơ
Châu Tinh Trì Nam Số 811 Giải Phóng Cần Thơ

Ví dụ 3:

– Sao chép dữ liệu của hai cột CustomerName và City trong bảng Customers vào hai cột HoTen và ThanhPho của bảng Student

INSERT INTO Student (HoTen, ThanhPho)
SELECT CustomerName, City
FROM Customers;

– Sau khi thực thi câu lệnh phía trên thì cái bảng Student sẽ trở thành :

HoTen GioiTinh DiaChi ThanhPho
Ông Hoàng Dược Sư Nam 378 Trần Quang Diệu Đà Nẵng
Nguyễn Thành Nhân NULL NULL Cần Thơ
Lưu Đức Hoa NULL NULL Vĩnh Long
Phan Kim Liên NULL NULL Sóc Trăng
Tây Môn Khánh NULL NULL Cần Thơ
Doãn Quốc Thiên Thanh NULL NULL An Giang
Phạm Thị Tuyết Nhung NULL NULL Bạc Liêu
Châu Tinh Trì NULL NULL Cần Thơ

– Lưu ý : Khi tất cả chúng ta sao chép dữ liệu ( những hàng ) từ bảng table1 vào bên trong bảng table2 thì những hàng bắt đầu của bảng table2 vẫn được giữ nguyên, chứ không bị mất đi .

Sao chép dữ liệu từ bảng này vào bảng khác trong MySQL

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay