CHÈN VÀO bảng SQL từ một bảng khác

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ơ 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ệu

Trá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ác

Cú 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ột

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

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ảng

INSERT 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àng

Khi 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ỗi

INSERT 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'];
4

Chú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ã sau

INSERT 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'];
8

Phầ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

Jessica Wilkins

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

Làm cách nào để chèn dữ liệu từ hai bảng khác nhau trong SQL?

Để chèn bản ghi từ nhiều bảng, sử dụng câu lệnh INSERT INTO SELECT . Ở đây, chúng ta sẽ chèn các bản ghi từ 2 bảng.

Làm thế nào các hàng có thể được chèn vào một bảng từ một bảng khác?

Tất cả các hàng hoặc một số hàng của một bảng khác cũng có thể được chèn vào bảng bằng cách sử dụng câu lệnh INSERT INTO . Các hàng của một bảng khác sẽ được tìm nạp dựa trên một hoặc nhiều tiêu chí bằng cách sử dụng câu lệnh SQL SELECT.

Làm cách nào tôi có thể chèn bảng từ một bảng cơ sở dữ liệu khác trong SQL Server?

Giải pháp .
SỬ DỤNG Target_Database
CHÈN VÀO dbo. Target_Table[Cột1, Cột2, Cột3]
CHỌN Cột1, Cột2, Cột3
TỪ Nguồn_Cơ sở dữ liệu. dbo. Nguồn_Bảng

Làm cách nào để chèn dữ liệu từ bảng này sang bảng khác với các cột khác nhau?

Nhấp vào tab cho bảng có các cột bạn muốn sao chép và chọn các cột đó. Từ menu Chỉnh sửa, nhấp vào Sao chép. Nhấp vào tab cho bảng mà bạn muốn sao chép các cột. Chọn cột bạn muốn theo dõi các cột đã chèn và từ menu Chỉnh sửa, hãy nhấp vào Dán

Chủ Đề