Cú Pháp Mệnh đề Union Trong SQL. Cùng Tìm Hiểu Nhé. - GreenSQL
Có thể bạn quan tâm
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 là gì? Hãy cùng nhau tìm hiểu ngay bây giờ.
- Hàm CHARINDEX trong SQL Server
- Hàm CONCAT trong SQL Server
- Hàm + trong SQL Server
- Hàm DATALENGTH trong SQL Server
- Hàm LEFT trong SQL Server
Mục lục
- 1 Mệnh đề Union trong sql là gì?
- 2 Các cú pháp lệnh toán tử Union trong sql
- 3 Ví dụ về nion trong sql
- 4 Mệnh đề Union All trong SQL
- 4.1 Cú pháp mệnh đề toán tử Union All
- 4.2 Ví dụ về mệnh đề toán tử Union All
- 4.2.1 – Kết hợp hai bảng trên thuộc lệnh SELECT được thực hiện như sau:
- 4.2.2 – 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:
- 5 Áp dụng UNION cho nhiều hơn hai truy vấn
- 6 So sánh SQL UNION và UNION ALL
- 7 So sánh SQL UNION và SQL JOIN
- 8 Kết luận
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ì chức năng của nó đã khác nhau. Lệnh Union All các bạn sẽ nghiên cứu ở những mục bên dưới.
Điều kiện để sử dụng được lệnh union trong 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 các số cột.
+ Cùng kiểu dữ 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 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 có thể là bất cứ biểu thức vào tùy vào lựa chọn của cá nhân bạn.
Cùng tìm hiểu thêm tại:https://www.w3schools.com/sql/sql_union.asp
Ví dụ về nion trong sql
Trước hết ta cần tìm hiểu SQL là gì?
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 ban đầ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 kết 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ừ kết quả hiển thị như trên, ta có thể thấy không có sự trùng lặp dữ liệu nào ở kết quả trả về.
Mệnh đề Union All trong SQL
Union all trong SQL là gì? Toán tử Union All SQL cũng dùng để kết hợp các kiểu dữ 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 loại bỏ các dữ 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 nhiên hai lệnh này cũng sẽ có chức 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 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 kết 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 hiện 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, đã xuất hiện lại dữ liệu của nhân viên Lai, Diep, Thuy ở cuối hàng, nó không loại bỏ sự trùng lặp nhau. Ngoài ra, chúng ta cũng có thể sử dụng hai mệnh đề khác tương tự như mệnh đề UNION đó là INTERSECT SQL và EXCEPT SQL. Tùy vào sở thích và kỹ năng mà từng người có thể lựa chọn để hoàn thành tốt công việc của mình.
Áp dụng UNION cho nhiều hơn hai truy vấn
Bạn có thể sử dụng UNION để kết hợp kết quả của nhiều truy vấn nếu cần. Ví dụ, với một bảng về các loài vật nuôi, bạn có thể làm như sau:
SELECT DogName AS PetName FROM Dogs UNION ALL SELECT CatName AS PetName FROM Cats UNION ALL SELECT BirdName AS PetName FROM Birds;Câu lệnh này sẽ kết hợp các tên vật nuôi từ ba bảng khác nhau (Dogs, Cats, Birds) vào một danh sách duy nhất với cột tên là PetName.
So sánh SQL UNION và UNION ALL
SQL JOIN | SQL UNION |
Chỉ trả về các hàng duy nhất từ tập kết quả của hai truy vấn. | Trả về tất cả các hàng, bao gồm cả các giá trị trùng lặp, từ tập kết quả của hai truy vấn. |
Chậm hơn so với UNION ALL do cần loại bỏ các giá trị trùng lặp. | Nhanh hơn UNION do không cần kiểm tra và loại bỏ các giá trị trùng lặp. |
Nên sử dụng khi cần loại bỏ các bản ghi trùng lặp để có tập kết quả duy nhất.
| Sử dụng khi biết rằng các tập kết quả đã chứa các giá trị duy nhất hoặc không cần loại bỏ các bản ghi trùng lặp để cải thiện hiệu suất.Để cải thiện hiệu suất, bạn nên dùng UNION ALL khi biết các trường lựa chọn sẽ chỉ có những giá trị độc đáo. |
So sánh SQL UNION và SQL JOIN
SQL JOIN | SQL UNION |
Kết hợp dữ liệu vào các cột mới từ những bảng khác nhau. | Kết hợp dữ liệu vào các hàng mới từ kết quả của những truy vấn khác nhau. |
Sử dụng cột chung ở cả hai bảng để tìm nạp dữ liệu | Chọn dữ liệu từ hai bảng và kết hợp chúng trong kết quả. |
Linh hoạt trong việc kết hợp các cột từ các bảng khác nhau. | Số lượng cột phải giống nhau ở cả hai bảng. |
Kiểu dữ liệu của các cột có thể khác nhau. | Kiểu dữ liệu của các cột lý tưởng nên giống nhau (một số database như SQLite có thể có ngoại lệ). |
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 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.
Xem thêm:- Hàm GETDATE trong SQL Server
- Cú pháp mệnh đề left join trong sql
- Phone Repair Centre: Premier Technology Repair Services in Victoria
- Hàm @@VERSION trong SQL Server
- Hàm LEAD trong SQL Server
Từ khóa » Cú Pháp Union Trong Sql
-
Toán Tử UNION Trong SQL Server
-
Mệnh đề UNION Trong SQL - Học Sql Cơ Bản đến Nâng Cao - VietTuts
-
Toán Tử UNION Trong SQL
-
Kết Hợp Dữ Liệu Với UNION Trong SQL
-
Mệnh đề UNION Trong SQL | 79 Bài Học SQL Hay Nhất
-
Cú Pháp Mệnh đề Union Trong SQL Là Gì? Union Có Quan Trọng Không?
-
Phép Hợp UNION Trong SQL - Deft Blog
-
Toán Tử UNION Trong SQL | Lập Trình Từ Đầu
-
Toán Tử UNION Trong SQL
-
Tìm Hiểu Toán Tử UNION Trong SQL - Phần Mềm ATP Software
-
Gộp Dữ Liệu Với UNION Và UNION ALL Trong SQL
-
Toán Tử UNION Trong Oracle
-
Mệnh đề Kết Hợp Dữ Liệu UNION Trong SQL
-
Toán Tử UNION Trong SQL Server