
Ngoài những nội dung sql cơ bản thì ta còn phải biết thêm các sql nâng cao như join, alias, alter table, view, union, union all,… Trong đó mệnh đề union trong cấu trúc sql là một câu lệnh quan trọng và hữu ích, giúp người dùng có thể kết hợp các kiểu dữ liệu có cấu trúc giống nhau từ nhiều bảng thành một. Vậy, mệnh đề union trong sql cụ thể là gì? Hãy cùng nhau tìm hiểu ngay bây giờ.
Nội dung bài viết
Khái niệm về mệnh đề Union trong sql là gì ?
Mệnh đề Union trong sql là một mệnh đề hay còn gọi là toán tử sql. Theo đó, khi sử dụng lệnh SELECT union sql, cho phép người dùng kết hợp kết quả của hai hoặc nhiều lệnh SELECT mà không trả về bất cứ bản ghi trùng lặp nào (do chức năng của lệnh này là kết hợp lai các kiểu dữ liệu có cấu trúc giống nhau từ nhiều bảng thành một nhưng loại bỏ các cơ sở dữ liệu trùng nhau).
Union sql, câu lệnh phổ biến thường gặp đối với cơ sở dữ liệu.
Đối với lệnh Union, ta cần phân biệt với lệnh Union All hai lệnh này chỉ cần gõ sai lệnh thì tính năng của nó đã khác nhau. Lệnh Union All những bạn sẽ điều tra và nghiên cứu ở những mục bên dưới .
Điều kiện để sử dụng được lệnh union in sql là mỗi lệnh SELECT phải:
+ Có số cột giống nhau .
+ Có cùng số biểu thức của những số cột .
+ Cùng kiểu tài liệu .
+ Số cột tương ứng phải theo đúng thứ tự ( không phải phải cùng chiều dài ) .
Các cú pháp lệnh toán tử union trong cấu trúc sql
Cú pháp lệnh sql union cơ bản được thực hiện như sau:
SELECT cot1 [, cot2 ]
FROM bang1 [, bang2 ]
[ WHERE dieu_kien ]
UNION
SELECT cot1 [, cot2 ]
FROM bang1 [, bang2 ]
[ WHERE dieu_kien ]
Lưu ý : dieu_kien ở đây hoàn toàn có thể là bất kể biểu thức vào tùy vào lựa chọn của cá thể bạn .
Một số ví dụ về union in sql
Sql là tên viết tắt tiếng Anh của Structured Query Language, là ngôn ngữ thường dùng cho doanh nghiệp, bệnh viện hay khách sạn,… để quản lý nhân viên hay khách hàng. Sql giúp quản lý dữ liệu hiệu quả và thực hiện các thao tác tìm kiếm, chỉnh sửa, bổ sung nhanh hơn. Sau đây là một ví dụ điển hình về union sql vào việc quản lý nhân sự của một doanh nghiệp:
Ta cần sử dụng lệnh union trong cấu trúc sql để kết hợp hai bảng dữ liệu nhân viên và tiền thưởng để tính tiền thưởng cho nhân viên, ta sẽ làm như sau:
– Ta có hai bảng bắt đầu là bảng 1 là NHANVIEN và bảng 2 là TIENTHUONG :
Bảng 1: NHANVIEN
ID | TEN | TUOI | DIACHI | LUONG |
1 | Trinh | 31 | Binhdinh | 2000.00 |
2 | Diep | 27 | Hanoi | 1500.00 |
3 | Lai | 25 | Hanam | 2000.00 |
4 | Thuy | 25 | Hue | 6500.00 |
5 | Nam | 28 | Danang | 8500.00 |
6 | Lan | 29 | HCM | 4500.00 |
7 | Dao | 21 | Hanoi | 10000.00 |
Bảng 2: TIENTHUONG
TT_ID | NGAY | NHANVIEN_ID | SOTIEN |
102 | 2019 – 01- 08 00:00:00 | 3 | 3000 |
| 100 | 2019 – 01 – 08 00:00:00 | 3 | 1500 |
101 | 2019 – 02 – 20 00:00:00 | 2 | 1560 |
103 | 2018 – 12 – 20 00:00:00 | 4 | 2060 |
– Thực hiện thao tác phối hợp hai bảng này ở lệnh SELECT như sau :
SQL > SELECT ID, TEN, SOTIEN, NGAY
FROM NHANVIEN
LEFT JOIN TIENTHUONG
ON NHANVIEN.ID = TIENTHUONG.NHANVIEN _ID
UNION
SELECT ID, TEN, SOTIEN, NGAY
FROM NHANVIEN
RIGHT JOIN TIENTHUONG
ON NHANVIEN.ID = TIENTHUONG.NHANVIEN _ID ;
– Kết quả được trả về như sau :
ID | TEN | SOTIEN | NGAY |
1 | Trinh | NULL | NULL |
2 | Diep | 1560 | 2019 – 02 – 20 00:00:00 |
3 | Lai | 3000 | 2019 – 01- 08 00:00:00 |
3 | Lai | 1500 | 2019 – 01- 08 00:00:00 |
4 | Thuy | 2060 | 2018 – 12 – 20 00:00:00 |
5 | Nam | NULL | NULL |
6 | Lan | NULL | NULL |
7 | Dao | NULL | NULL |
Từ tác dụng hiển thị như trên, ta hoàn toàn có thể thấy không có sự trùng lặp tài liệu nào ở hiệu quả trả về .
Khái niệm về mệnh đề Union All trong SQL
Toán tử Union All SQL cũng dùng để phối hợp những kiểu tài liệu có cấu trúc giống nhau từ hai hay nhiều bảng thành một bảng nhưng không vô hiệu những tài liệu trùng nhau .
Cú pháp mệnh đề toán tử Union All
Cú pháp câu lệnh của toán tử Union All cũng giống với câu lệnh UNION nhưng thay bằng gõ UNION ta sẽ gõ bằng UNION ALL và tất yếu hai lệnh này cũng sẽ có tính năng khác nhau. Cú pháp cơ bản như sau :
SELECT cot1 [, cot2 ]
FROM bang1 [, bang2 ]
[ WHERE dieu_kien ]
UNION ALL
SELECT cot1 [, cot2 ]
FROM bang1 [, bang2 ]
[ WHERE dieu_kien ]
Ví dụ về mệnh đề toán tử Union All
Cũng lấy lại ví dụ về hai bảng nhân viên cấp dưới và tiền thưởng như trên nhưng khi sử dụng 2 lệnh khác nhau ta sẽ thấy ra hiệu quả khác nhau giữa toán tử UNION và toán tử UNION ALL .
– Kết hợp hai bảng trên thuộc lệnh SELECT được thực thi như sau :
SQL > SELECT ID, TEN, SOTIEN, NGAY
FROM NHANVIEN
LEFT JOIN TIENTHUONG
ON NHANVIEN.ID = TIENTHUONG.NHANVIEN _ID
UNION ALL
SELECT ID, TEN, SOTIEN, NGAY
FROM NHANVIEN
RIGHT JOIN TIENTHUONG
ON NHANVIEN.ID = TIENTHUONG.NHANVIEN _ID ;
– Kết quả được trả về khi sử dụng lệnh thuộc toán tử UNION ALL sẽ khác với khi sử dụng lệnh UNION như sau :
ID | TEN | SOTIEN | NGAY |
1 | Trinh | NULL | NULL |
2 | Diep | 1560 | 2019 – 02 – 20 00:00:00 |
3 | Lai | 3000 | 019 – 01- 08 00:00:00 |
3 | Lai | 1500 | 019 – 01- 08 00:00:00 |
4 | Thuy | 2060 | | 2018 – 12 – 20 00:00:00 |
5 | Nam | NULL | NULL |
6 | Lan | NULL | NULL |
7 | Dao | NULL | NULL |
3 | Lai | 3000 | 019 – 01- 08 00:00:00 |
3 | Lai | 1500 | 019 – 01- 08 00:00:00 |
2 | Diep | 1560 | 2019 – 01- 08 00:00:00 |
4 | Thuy | 2060 | 2018 – 12 – 20 00:00:0 |
Ta sẽ thấy có sự trùng lặp nhau, đã Open lại tài liệu của nhân viên cấp dưới Lai, Diep, Thuy ở cuối hàng, nó không vô hiệu sự trùng lặp nhau .
Ngoài ra, tất cả chúng ta cũng hoàn toàn có thể sử dụng hai mệnh đề khác tương tự như như mệnh đề UNION đó là INTERSECT SQL và EXCEPT SQL. Tùy vào sở trường thích nghi và kỹ năng và kiến thức mà từng người hoàn toàn có thể lựa chọn để hoàn thành xong tốt việc làm của mình .
Kết luận
Như vậy, bài viết trên đã giúp bạn biết cách truy vấn cú pháp câu lệnh union trong cấu trúc sql cũng như lệnh union all. Hy vọng những hướng dẫn này giúp bạn nâng cao kiến thức và kỹ năng vào việc sử dụng sql để quản lý doanh nghiệp, khách sạn, nhà hàng, bệnh viện,… được nhanh và hiệu quả hơn.
Để thành thạo hơn cách sử dụng ngôn ngữ sql, cũng như cách thức sử dụng toán tử matlab. Bạn nên tham gia một khóa học chuyên sâu, theo đó các giảng viên, người hướng dẫn sẽ hướng dẫn bạn tận tình từ kỹ năng đơn giản đến nâng cao.
Source: https://thichvivu.net
Category: Kiến thức SEO – Code Web