1. Trang chủ
  2. » Thể loại khác

menh de union trong sql

5 80 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 319,75 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mệnh đề UNION trong SQL Mệnh đề/Toán tử UNION trong SQL được sử 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 sao nào của bản ghi.. Để sử dụng UNION,

Trang 1

Mệnh đề UNION trong SQL

Mệnh đề/Toán tử UNION trong SQL được sử 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 sao nào của bản ghi

Để sử dụng UNION, mỗi lệnh SELECT phải có cùng số cột đã chọn, cùng số biểu thức của các cột, cùng kiểu dữ liệu, và chúng có cùng thứ tự, nhưng chúng không cần phải có cùng độ dài

Cú pháp

Cú pháp cơ bản của mệnh đề UNION trong SQL như sau:

SELECT cot1 [, cot2 ]

FROM bang1 [, bang2 ]

[WHERE dieu_kien]

UNION

SELECT cot1 [, cot2 ]

FROM bang1 [, bang2 ]

[WHERE dieu_kien]

Tại đây, dieu_kien đã cho có thể là bất kỳ biểu thức nào dựa theo yêu cầu của bạn

Ví d ụ

Giả sử có hai bảng, bảng SINHVIEN có các bản ghi sau:

+ + -+ -+ -+ -+

| ID | TEN | TUOI| KHOAHOC | HOCPHI |

+ + -+ -+ -+ -+

| 1 | Hoang | 21 CNTT | 4000000 |

| 2 | Viet | 19 DTVT | 3000000 |

| 3 | Thanh | 18 KTDN | 4000000 |

| 4 | Nhan | 19 CK | 4500000 |

| 5 | Huong | 20 TCNH | 5000000 |

+ + -+ -+ -+ -+

Trang 2

Bảng MUONSACH có các bản ghi sau:

+ -+ -+ -+ -+

|STT | NGAY | SINHVIEN_ID | SOTIEN | + -+ -+ -+ -+

| 102 2009-10-08 00:00:00 3 | 320

| 100 2009-10-08 00:00:00 3 | 250

| 101 2009-11-20 00:00:00 2 | 280

| 103 2008-05-20 00:00:00 4 | 290

+ -+ -+ -+ -+

Bây giờ, kết hợp hai bảng này trong lệnh SELECT như sau: SQL> SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN LEFT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID UNION SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN RIGHT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID; Ví dụ trên sẽ cho kết quả: + -+ -+ -+ -+

| ID | TEN | SOTIEN | NGAY |

+ -+ -+ -+ -+

| 1 | Hoang | NULL | NULL |

| 2 | Viet | 280 2009-11-20 00:00:00 | 3 | Thanh | 320 2009-10-08 00:00:00 | 3 | Thanh | 250 2009-10-08 00:00:00 | 4 | Nhan 290 2008-05-20 00:00:00 | 5 | Huong | NULL | NULL |

+ -+ -+ -+ -+

Trang 3

Mệnh đề UNION ALL trong SQL

Toán tử UNION ALL được sử dụng để kết hợp nhiều kết quả của hai lệnh SELECT bao gồm cả các bản sao của các hàng

Các qui tắc áp dụng cho UNION cũng áp dụng cho toán tử UNION ALL

Cú pháp

Cú pháp cơ bản của UNION ALL là như sau:

SELECT cot1 [, cot2 ]

FROM bang1 [, bang2 ]

[WHERE dieu_kien]

UNION ALL

SELECT cot1 [, cot2 ]

FROM bang1 [, bang2 ]

[WHERE dieu_kien]

Ở đây, dieu_kien đã cho có thể là bất kỳ biểu thức đã cung cấp nào dựa theo yêu cầu của bạn

Ví d ụ

Giả sử có hai bảng, bảng SINHVIEN có các bản ghi sau:

+ + -+ -+ -+ -+

| ID | TEN | TUOI| KHOAHOC | HOCPHI |

+ + -+ -+ -+ -+

| 1 | Hoang | 21 CNTT | 4000000 |

| 2 | Viet | 19 DTVT | 3000000 |

| 3 | Thanh | 18 KTDN | 4000000 |

| 4 | Nhan | 19 CK | 4500000 |

| 5 | Huong | 20 TCNH | 5000000 |

+ + -+ -+ -+ -+

Bảng MUONSACH có các bản ghi sau:

Trang 4

|STT | NGAY | SINHVIEN_ID | SOTIEN | + -+ -+ -+ -+

| 102 2009-10-08 00:00:00 3 | 320

| 100 2009-10-08 00:00:00 3 | 250

| 101 2009-11-20 00:00:00 2 | 280

| 103 2008-05-20 00:00:00 4 | 290

+ -+ -+ -+ -+

Bây giờ, kết hợp hai bảng trên trong lệnh SELECT như sau: SQL> SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN LEFT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID UNION ALL SELECT ID, TEN, SOTIEN, NGAY FROM SINHVIEN RIGHT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID; Ví dụ trên sẽ cho kết quả: + -+ -+ -+ -+

| ID | TEN | SOTIEN | NGAY |

+ -+ -+ -+ -+

| 1 | Hoang | NULL | NULL |

| 2 | Viet | 280 2009-11-20 00:00:00 | 3 | Thanh | 320 2009-10-08 00:00:00 | 3 | Thanh | 250 2009-10-08 00:00:00 | 4 | Nhan 290 2008-05-20 00:00:00 | 5 | Huong | NULL | NULL |

| 3 | Thanh | 320 2009-10-08 00:00:00

| 3 | Thanh | 250 2009-10-08 00:00:00

| 2 | Viet | 280 2009-11-20 00:00:00

Trang 5

| 4 | Nhan 290 2008-05-20 00:00:00

+ -+ -+ -+ -+

Ngoài ra, có hai mệnh đề khác (hoặc toán tử) mà khá tương tự như mệnh đề UNION, bạn truy cập link để tìm hiểu chúng:

các hàng chỉ từ lệnh SELECT đầu tiên mà là đồng nhất với một hàn trong lệnh SELECT thứ hai

 Mệnh đề EXCEPT trong SQL : kết hợp hai lệnh SELECT và trả về các hàng từ lệnh SELECT đầu tiên mà không được trả về bởi lệnh SELECT thứ hai

Ngày đăng: 02/12/2017, 12:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN