Hợp nhất hai bảng trong SQL

Hop Nhat Hai Bang Trong Sql



Trong SQL, việc hợp nhất bảng đề cập đến quá trình kết hợp dữ liệu từ hai bảng riêng biệt trong cơ sở dữ liệu nhất định thành một đơn vị dựa trên một cột hoặc tiêu chí chung. Vâng, nếu nó giống như một cái bàn thì nó chính xác là như vậy.

Nối bảng hoặc hợp nhất bảng là một tính năng nổi tiếng của cơ sở dữ liệu quan hệ và nó cực kỳ mạnh mẽ. Nó cho phép chúng tôi hợp nhất thông tin từ nhiều nguồn để tạo ra những hiểu biết sâu sắc về dữ liệu mạch lạc và có ý nghĩa hơn. Nó cũng cho phép cơ sở dữ liệu quan hệ có khả năng mở rộng cao (không linh hoạt) vì chúng ta có thể chia dữ liệu thành các phần nhỏ hơn, dễ quản lý mà chúng ta có thể tham khảo sau.

Trong hướng dẫn này, chúng ta sẽ đề cập đến các nguyên tắc cơ bản về nối bảng hoặc hợp nhất bảng. Hãy cùng xem các mẫu bảng thực tế để củng cố kiến ​​thức của chúng ta.







Bảng mẫu

Trước khi đi vào thế giới của các phép nối bảng, chúng ta hãy thiết lập các bảng cơ bản mà chúng ta sẽ sử dụng cho mục đích trình diễn.



Hãy xem xét hai bảng chứa thông tin về nhân viên và tiền lương như trong các truy vấn mẫu sau:



TẠO BẢNG nhân viên (

nhân viên_id INT AUTO_INCREMENT KHÓA CHÍNH,

first_nameVARCHAR( năm mươi ),

họ_tên VARCHAR( năm mươi ),

bộ phận VARCHAR( năm mươi )

);

Sau đó, chúng ta có thể chèn dữ liệu mẫu vào bảng của nhân viên như trong các truy vấn sau:





XÁC NHẬN VÀO nhân viên (tên_tên, họ, bộ phận) GIÁ TRỊ

( 'Alice' , 'Thợ rèn' , 'Nguồn nhân lực' ),

( 'Bob' , 'Johnson' , 'Tiếp thị' ),

( 'Charlie' , 'Wilson' , 'Tài chính' ),

( 'David' , 'Màu nâu' , 'Việc bán hàng' ),

( 'Eva' , 'Davis' , 'Kỹ thuật' );

Chúng ta tiến hành tạo một bảng mới để lưu trữ thông tin về lương như sau:

TẠO BẢNG lương (

lương_id INT AUTO_INCREMENT KHÓA CHÍNH,

nhân viên_id INT,

lương thập phân( 10 , 2 ),

ngày bắt đầu NGÀY,

ngày_cuối DATE,

KHÓA NGOẠI TỆ (employee_id) THAM KHẢO nhân viên (employee_id)

);

Thêm dữ liệu mẫu chèn vào bảng như sau:



CHÈN VÀO mức lương (employee_id, lương, ngày bắt đầu, ngày kết thúc) GIÁ TRỊ
( 1 , 60000,00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55000,00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65000,00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58000.00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70000,00 , '2023-01-01' , '2023-12-31' );

Điều này sẽ cung cấp cho chúng ta hai bảng có thể giúp chúng ta thể hiện khái niệm về nối/hợp nhất bảng trong SQL.

Hợp nhất bảng/Tham gia bảng SQL

Chúng ta hãy khám phá các kiểu hợp nhất bảng khác nhau mà chúng ta có thể thực hiện. Chúng tôi sẽ đề cập đến những cái cơ bản khi chúng tôi tiến tới những cái nâng cao hơn.

THAM GIA TRONG

Kiểu nối bảng đầu tiên và phổ biến nhất trong SQL là INNER JOIN. INNER JOIN cho phép chúng ta kết hợp các hàng từ hai bảng dựa trên một điều kiện cụ thể. Loại này sau đó chỉ trả về các hàng có sự trùng khớp giữa các bảng.

Chúng ta hãy lấy bảng “nhân viên” và “tiền lương” mà chúng ta đã tạo trước đó làm ví dụ. Để thực hiện INNER JOIN trong SQL, chúng ta sử dụng mệnh đề INNER JOIN như sau:

LỰA CHỌN

e.employee_id,

e.first_name,

e.last_name,

khoa điện tử,

s.lương

TỪ

nhân viên điện tử

INNER JOIN lương s TRÊN

e.employee_id = s.employee_id;

Trong truy vấn mẫu đã cho, chúng tôi sử dụng INNER JOIN để hợp nhất bảng “nhân viên” và “lương” trên cột “employee_id” tồn tại trong cả hai bảng. Tập kết quả chỉ chứa các hàng khớp từ cả hai bảng.

Một đầu ra ví dụ như sau:

TRÁI NGOÀI THAM GIA

Chúng tôi cũng có LEFT OUTER JOIN kết hợp tất cả các hàng từ bảng bên trái và các hàng phù hợp từ bảng bên phải. Nếu không có kết quả trùng khớp ở bảng bên phải, phép nối sẽ sử dụng giá trị NULL.

LỰA CHỌN

e.employee_id,

e.first_name,

e.last_name,

khoa điện tử,

s.lương

TỪ

nhân viên điện tử

LEFT JOIN lương s

TRÊN

e.employee_id = s.employee_id;

Trong ví dụ này, chúng tôi thực hiện LEFT OUTER JOIN để hợp nhất các bảng “nhân viên” và “lương”. Tất cả các hàng từ bảng “nhân viên” đều được đưa vào và các hàng phù hợp từ bảng “lương” cũng được thêm vào. Tuy nhiên, giá trị NULL được bao gồm trong cột “lương” cho các hàng không khớp.

ĐOÀN SQL

Một phương pháp khác để nối các bảng trong SQL là sử dụng toán tử UNION. Toán tử này cho phép chúng ta kết hợp các kết quả của hai hoặc nhiều câu lệnh chọn thành một tập kết quả duy nhất.

Các cột trong mỗi câu lệnh SELECT phải có cùng kiểu dữ liệu để có thể áp dụng phép kết hợp.

Một ví dụ như sau:

CHỌN nhân viên_id, first_name, Last_name, bộ phận, mức lương NULL AS

TỪ nhân viên e

LIÊN HIỆP

CHỌN nhân_id, NULL AS first_name, NULL AS họ, NULL AS bộ phận, lương

TỪ tiền lương;

Trong trường hợp này, UNION hợp nhất các bảng “nhân viên” và “tiền lương”. Sau đó, chúng tôi tạo các cột NULL trong mỗi câu lệnh SELECT để đảm bảo rằng cả hai bảng đều có số cột tương tự nhau.

UNIONS là phổ biến về mặt kỹ thuật nhưng chúng có thể hữu ích đặc biệt khi bạn cần hợp nhất các bảng có cấu trúc khác nhau.

Phần kết luận

Trong hướng dẫn này, chúng ta đã khám phá các nguyên tắc cơ bản của việc nối/hợp nhất hai bảng thành một tập kết quả duy nhất. Bạn nên nhớ rằng có rất nhiều phép nối nâng cao hơn được thảo luận trong bài viết này.