Câu lệnh INSERT INTO SELECT
được sử dụng để sao chép các bản ghi từ bảng này sang bảng hiện có khác. Ví dụ,
INSERT INTO OldCustomers
SELECT *
FROM Customers;
Tại đây, lệnh SQL sao chép tất cả các bản ghi từ bảng Khách hàng sang bảng Khách hàng cũ
Ghi chú. Để chạy lệnh này,
Cũ- cơ sở dữ liệu phải có một bảng tên là OldCustomers
- tên cột của bảng OldCustomers và bảng Khách hàng phải khớp
Nếu chúng ta muốn sao chép dữ liệu vào một bảng mới [chứ không phải sao chép trong một bảng có sẵn] thì chúng ta nên sử dụng câu lệnh SELECT INTO
Chỉ sao chép các cột đã chọn
Chúng tôi cũng có thể chỉ sao chép các cột đã chọn từ bảng này sang bảng khác. Ví dụ,
INSERT INTO OldCustomers[customer_id, age]
SELECT customer_id, age
FROM Customers;
Ở đây, lệnh SQL chỉ sao chép các bản ghi từ cột customer_id và cột quốc gia vào bảng OldCustomers
Ghi chú. Nếu có các cột khác với customer_id và age trong bảng OldCustomers, giá trị của các cột đó sẽ là NULL
Sao chép bản ghi phù hợp với một điều kiện
Chúng ta có thể sử dụng mệnh đề _______ 47 _______ với _______ 48 _______ để sao chép những hàng phù hợp với điều kiện đã chỉ định. Ví dụ,
INSERT INTO OldCustomers
SELECT *
FROM Customers
WHERE country = 'USA';
Ở đây, lệnh SQL sao chép các hàng có giá trị của cột quốc gia là USA
Sao chép từ hai bảng thành một
Chúng tôi cũng có thể sao chép các bản ghi từ hai bảng khác nhau bằng cách sử dụng mệnh đề JOIN
với INSERT INTO SELECT
. Ví dụ,
INSERT INTO OldCustomerOrders
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
JOIN Orders
ON Customers.customer_id = Orders.customer_id;
Tại đây, lệnh SQL sao chép customer_id và first_name từ bảng Khách hàng và số lượng từ bảng Đơn hàng trong bảng hiện có OldCustomerOrders. Để tìm hiểu thêm, hãy truy cập SQL THAM GIA
Ghi chú. Nếu các bản ghi đã có trong một bảng hiện có, các hàng mới sẽ được thêm vào. Các cột trong bảng hiện có có thể gây ra lỗi như
INSERT INTO OldCustomers[customer_id, age]
SELECT customer_id, age
FROM Customers;
1, INSERT INTO OldCustomers[customer_id, age]
SELECT customer_id, age
FROM Customers;
2 trong khi sao chép dữ liệuTránh trùng lặp trong INSERT INTO SELECT
Nếu đã có một hàng có giá trị tương tự, SQL có thể đưa ra lỗi khi sử dụng lệnh INSERT INTO SELECT
Tuy nhiên, chúng ta có thể bỏ qua việc sao chép các hàng trùng lặp bằng cách sử dụng mệnh đề
INSERT INTO OldCustomers[customer_id, age]
SELECT customer_id, age
FROM Customers;
4. Ví dụ,INSERT INTO OldCustomers[customer_id, age]
SELECT customer_id, age
FROM Customers
WHERE NOT EXISTS[
SELECT customer_id
FROM OldCustomers
WHERE OldCustomers.customer_id = Customers.customer_id
];
Ở đây, lệnh SQL sẽ chỉ sao chép hàng sang một bảng mới nếu customer_id không có cùng giá trị
Hai câu lệnh trước tạo và điền vào một bảng, TELE, trông tương tự như bảng sau. ________số 8_______
Ví dụ câu lệnh CREATE TABLE tạo một bảng mà lúc đầu trống. Bảng có các cột cho họ, tên và số điện thoại, nhưng không có bất kỳ hàng nào
Trong bài viết này, tôi sẽ chỉ cho bạn cách sử dụng câu lệnh
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
1 để thêm một hàng, nhiều hàng và sao chép các hàng từ bảng SQL này sang bảng SQL khácCú pháp INSERT cơ bản
Đây là cú pháp cơ bản để thêm hàng vào bảng trong SQL
INSERT INTO table_name [column1, column2, column3,etc]
VALUES [value1, value2, value3, etc];
Dòng mã đầu tiên sử dụng câu lệnh
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
1 theo sau là tên của bảng mà bạn muốn thêm dữ liệu vào. Sau tên bảng, bạn nên chỉ định tên cộtDòng mã thứ hai là nơi bạn sẽ thêm các giá trị cho các hàng. Điều quan trọng là số lượng giá trị khớp với số lượng cột được chỉ định, nếu không bạn sẽ nhận được thông báo lỗi
Cách thêm hàng vào bảng SQL
Trong ví dụ này, chúng ta có một bảng có tên là
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
4 với các cột là INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
5, INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
6 và INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
7. Chúng tôi muốn thêm một chú chó tên là INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
8Đây là giao diện của mã khi thêm
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
8 vào bảngINSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
Đây là những gì bảng trông giống như
Điều gì xảy ra nếu số lượng giá trị không khớp với các cột?
Như đã đề cập trước đó, số lượng cột phải khớp với số lượng giá trị
Nếu tôi thay đổi mã để xóa một giá trị thì tôi sẽ nhận được thông báo lỗi
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
Vì chúng tôi đã chỉ định 3 cột nên chúng tôi cần cung cấp ba giá trị cho mỗi hàng được thêm vào bảng.
Điều gì xảy ra nếu bạn bỏ qua các ràng buộc cột?
Khi bạn tạo bảng SQL, bạn sẽ thêm các ràng buộc cột đóng vai trò là quy tắc cho cột
Trong bảng
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
4 của chúng tôi, các cột INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
6 và INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
7 có ràng buộc là INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
3. Quy tắc này có nghĩa là một giá trị không thể vắng mặt trong hàngKhi tôi cố gắng thêm
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
4 cho INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
7, tôi quay lại với một thông báo lỗiINSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', NULL];
Mọi ràng buộc mà bạn đã chỉ định khi tạo bảng SQL cần được tôn trọng khi thêm hàng.
Cách thêm nhiều hàng vào một bảng trong SQL
Nếu bạn muốn thêm nhiều hàng vào một bảng cùng một lúc, thì bạn có thể sử dụng cú pháp này
INSERT INTO table_name [column1, column2, column3,etc]
VALUES
[value1, value2, value3, etc],
[value1, value2, value3, etc],
[value1, value2, value3, etc];
Điều quan trọng là phải nhớ dấu phẩy giữa mỗi hàng nếu không bạn sẽ nhận được thông báo lỗi
Đây là mã sẽ trông như thế nào khi thêm tám con chó vào bảng cùng một lúc
INSERT INTO dogs[id, name, gender]
VALUES
[1, 'AXEL', 'M'],
[2, 'Annie', 'F'],
[3, 'Ace', 'M'],
[4, 'Zelda', 'F'],
[5, 'Diesel', 'M'],
[6, 'Tilly', 'F'],
[7, 'Leroy', 'M'],
[8, 'Olivia', 'F'];
Đây là những gì bảng trông giống như bây giờ
Cách sao chép các hàng từ một bảng và chèn chúng vào một bảng khác
Bạn có thể sử dụng các câu lệnh
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
6 và INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
1 để sao chép các hàng từ bảng SQL này sang bảng SQL khácĐây là cú pháp cơ bản
INSERT INTO table_name1 [columns]
SELECT columns FROM table_name2;
Trong ví dụ này, tôi đã tạo một bảng
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
8 có ba hàng trong đó có cùng tên cột với bảng INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
4Chúng ta có thể thêm tất cả dữ liệu của
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
8 vào bảng INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
4 bằng đoạn mã sauINSERT INTO dogs SELECT * FROM cats;
Đây là giao diện của bảng
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
4 mới với bảng bổ sung INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
8Phần kết luận
Nếu bạn muốn thêm dữ liệu vào bảng SQL của mình, thì bạn có thể sử dụng câu lệnh
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
1Đây là cú pháp cơ bản để thêm hàng vào bảng SQL của bạn
INSERT INTO table_name [column1, column2, column3,etc]
VALUES [value1, value2, value3, etc];
Dòng mã thứ hai là nơi bạn sẽ thêm các giá trị cho các hàng. Điều quan trọng là số lượng giá trị khớp với số lượng cột được chỉ định, nếu không bạn sẽ nhận được thông báo lỗi
Khi bạn cố gắng bỏ qua các ràng buộc cột khi thêm hàng vào bảng, bạn sẽ nhận được thông báo lỗi
Nếu bạn muốn thêm nhiều hàng vào một bảng cùng một lúc, thì bạn có thể sử dụng cú pháp này
INSERT INTO table_name [column1, column2, column3,etc]
VALUES
[value1, value2, value3, etc],
[value1, value2, value3, etc],
[value1, value2, value3, etc];
Bạn có thể sử dụng câu lệnh
INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL'];
6 và INSERT INTO dogs[id, name, gender] VALUES [1, 'AXEL', 'M'];
1 để sao chép các hàng từ bảng SQL này sang bảng SQL khácĐây là cú pháp cơ bản
INSERT INTO table_name1 [columns]
SELECT columns FROM table_name2;
Tôi hy vọng bạn thích bài viết này và chúc may mắn trên hành trình SQL của bạn
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Tôi là một nhạc sĩ và một lập trình viên
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu