Cách thêm một cột từ một bảng khác trong SQL

Bạn có thể sử dụng câu lệnh

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
5 để truy xuất dữ liệu từ bảng này, sau đó sử dụng một câu lệnh
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
6 để thêm tập hợp dữ liệu đó vào một bảng khác và hai câu lệnh sẽ được lồng trong một truy vấn duy nhất

1. Chèn toàn bộ dữ liệu của một cột

Cú pháp chung sẽ là

INSERT INTO table_a [col1a]
SELECT col1b
FROM table_b;

Câu lệnh đó sẽ chọn tất cả dữ liệu từ

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
7 trong
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
0 và chèn vào
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
1 trong
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
2

Bạn có thể chèn nhiều cột từ nhiều cột

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;

2. Chèn một số hàng từ một bảng khác

Bạn có thể thêm một số điều kiện trước khi chèn để giới hạn kết quả

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b
WHERE table_b.col1 = x;

Ví dụ. CHÈN dữ liệu của các đơn đặt hàng lớn từ bảng tổng số đơn đặt hàng, trong đó tổng số tiền lớn hơn $10.000

INSERT INTO sales.big_orders [id, full_name, address, total]
SELECT
	id,
	full_name,
	address,
	total
FROM
	sales.total_orders
WHERE
	total > 10000;

3. Chèn các hàng trên cùng

Bạn có thể chọn n hàng trên cùng từ table_b để chèn vào table_a bằng truy vấn này

INSERT TOP[n]
INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b
WHERE table_b.col1 = x
ORDER BY col1b;

Với ví dụ trên, chúng tôi chỉ muốn chèn 20 đơn đặt hàng lớn nhất

________số 8

4. Chèn cả từ cột và giá trị đã xác định

Trường hợp bạn chèn dữ liệu vào nhiều cột nhưng chỉ có một số cột cần nhập từ bảng_b, một số cột cần nhập từ tập dữ liệu khác

INSERT INTO table_a [col1a, col2a, col3a, col4a …]
SELECT table_b.col1b, 'other value', table_b.col3b, 'another_value',…
FROM table_b
WHERE table_b.col1 = x;

Cần một Máy khách GUI tốt để làm việc với MS SQL Server?

Có, chúng ta có thể thêm một cột vào bảng từ một bảng khác. Trước tiên chúng ta hãy tạo hai bảng. Truy vấn để tạo một bảng như sau -

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
0

Bây giờ tạo bảng thứ hai. Truy vấn để tạo bảng thứ hai như sau -

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
1

Bây giờ, thêm cột Tuổi vào bảng đầu tiên. Đầu tiên, thêm cột Age, sau đó dùng lệnh UPDATE để set cột Age này thành cột UserAge của SecondTable. Truy vấn như sau -

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
2

Bây giờ, đây là truy vấn để cập nhật bảng đầu tiên để đặt cột Tuổi thành cột Tuổi người dùng của Bảng thứ hai. Truy vấn như sau -

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
3

Bây giờ hãy kiểm tra mô tả của bảng đầu tiên với sự trợ giúp của lệnh DESC. Truy vấn như sau -

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
8 của SQL Server để thêm một hoặc nhiều cột vào bảng

Câu lệnh

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
8 sau nối thêm một cột mới vào bảng

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
4

trong tuyên bố này

  • Đầu tiên, chỉ định tên của bảng mà bạn muốn thêm cột mới vào
  • Thứ hai, chỉ định tên của cột, kiểu dữ liệu của cột và ràng buộc nếu có

Nếu bạn muốn thêm nhiều cột vào một bảng cùng một lúc bằng một câu lệnh

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
0, bạn sử dụng cú pháp sau

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
5

Trong cú pháp này, bạn chỉ định một danh sách các cột được phân tách bằng dấu phẩy mà bạn muốn thêm vào bảng sau mệnh đề

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
1

Lưu ý rằng SQL Server không hỗ trợ cú pháp thêm cột vào bảng sau cột hiện có như MySQL

SQL Server
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
8 cột ví dụ

Câu lệnh sau tạo một bảng mới có tên là

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
50

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
7

Để thêm một cột mới có tên là

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
51 vào bảng
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
50, bạn sử dụng câu lệnh sau

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
0

Câu lệnh sau thêm hai cột mới có tên là

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
53 và
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
54 vào bảng
INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
50

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
4

Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh

INSERT INTO table_a [col1a, col2a, col3a, …]
SELECT col1b, col2b, col3b, …
FROM table_b;
8 của SQL Server để thêm một hoặc nhiều cột vào bảng

Chủ Đề