230 likes | 391 Views
Union. UNION. Union : Được dùng để kết hợp kết quả của 2 hay nhiều câu “Select” vào 1 kết quả duy nhất .
E N D
UNION • Union : Đượcdùngđểkếthợpkếtquảcủa 2 hay nhiềucâu “Select” vào 1 kếtquảduynhất. Mỗi câu lệnh SELECT trong UNION phải có cùng số lượng các cột. Các cột cũng phải có kiểu dữ liệu tương tựnhau.Các cột trong mỗi câu lệnh SELECT phải được theo thứ tự chính xác.
UNION • Cú pháp của câu lệnh Union : SELECT column_name(s) FROM table_name1UNION SELECT column_name(s) FROM table_name2 UNION ……………………….
UNION • Chú ý : UNION sẽ tự động loại bỏ các trường bị trùng . Nếu muốn hiển thị toàn bộ các trường chúng ta phải thêm “ALL” sau UNION.
UNION • Bảng Sinh Viên : • Bảng Lớp Học : • Bảng Sinh Viên : • Bảng Lớp Học :
UNION • Bảng Điểm Số :
UNION • SELECT MASV FROM SINHVIEN UNION SELECT MASV FROM DIEM Chú ý : Trong câu lệnh UNION muốn sử dụng câu lệnh ORDER BY thì phải đặt câu lệnh ORDER BY sau câu lệnh UNION mới hợp lệ.
UNION • SELECT MASV FROM SINHVIEN UNION SELECT MASV FROM DIEM ORDER BY 1 DESC
UNION • Cú pháp của câu lệnh UNION ALL : SELECT column_name(s) FROM table_name1UNION ALL SELECT column_name(s) FROM table_name2
UNION SELECT MASV FROM SINHVIEN UNION ALL SELECT MASV FROM DIEM ORDER BY 1 DESC
INTERSECT • Intersect : Được dùng để lọc ra kết quả của 2 hay nhiều câu “Select”.Nó chỉ trả lại các kết quả cùng tồn tại trên tất cả các bảng.Kết quả nào không tồn tại trên tất cả các bảng thì sẽ bị loại bỏ.
INTERSECT • Cú pháp câu lệnh Intersect : SELECT Column(s) FROM Table1 INTERSECT SELECT Column(s) FROM Table2
INTERSECT • Chú ý : • Số lượng và thứ tự của các cột phải là giống nhau trong tất cả các các truy vấn. • Các loại dữ liệu phải được tương thích. • Khi đảo thứ tự các bảng trong câu lệnh INTERESCT thì kết quả cũng không thay đổi .
INTERSECT SELECT column_name(s) FROM table_name1INTERSECT SELECT column_name(s) FROM table_name2 • Kết quả trả về cũng giống như : SELECT column_name(s) FROM table_name2INTERSECT SELECT column_name(s) FROM table_name1
INTERSECT SELECT MASV FROM SINHVIEN INTERSECT SELECT MASV FROM DIEM • Chú ý : Tương tự như UNION thì trong câu lệnh INTERSECT phải để ORDER BY sau câu lệnh INTERSECT mới hợp lệ.
INTERSECT SELECT MALOP FROM LOP INTERSECT SELECT MALOP FROM SINHVIEN ORDER BY 1 DESC
MINUS • MINUS : Đượcdùngđểtổnghợpkếtquảcủa 2 hay niềucầucâu “Select”,trảvềkếtquảchỉcótrongkếtquảcủacâu “Select” thứnhấtnhưngkếtquảđósẽkhôngcótrongkếtquảcủacâu “Select” thứ 2. Hai báo cáo truy vấn có cấu trúc cột giống nhau: cùng một số cột, cùng một kiểudữ liệu.
MINUS • Cấu trúc câu lệnh Minus : SELECT Column(s) FROM Table1 MINUS SELECT Column(s) FROM Table2 • Chú ý : Trong HQT SQL thì lệnh MINUS được thay thế bằng lệnh EXCEPT .
MINUS SELECT MASV FROM SINHVIEN MINUS SELECT MASV FROM DIEM ORDER BY 1 DESC
EXCEPT SELECT MASV FROM SINHVIEN EXCEPT SELECT MASV FROM DIEM ORDER BY 1 DESC
EXISTS/NOT EXISTS • Exists và Not Exist : dùng để kiểm tra sự tồn tại và không tồn tại của 1 thuộc tính nào đó . • Exist là trả về giá trị“true” nếu có dữ liệu trảvề ,còn Not Exist thì ngược lại.
EXISTS/NOT EXISTS • VD : Tìm những lớp có các SV đang theo học . SELECT TENLOP FROM LOP WHERE EXISTS (SELECT DISTINCTSINHVIEN.MALOP FROM LOP,SINHVIEN WHERE SINHVIEN.MALOP = LOP.MALOP )