Phép Chia Trong SQL - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Cú pháp sử dụng phép chia
- 1.1 Sử dụng EXCEPT
- 1.2 Sử dụng NOT EXISTS
- 1.3 Sử dụng Gom nhóm
Không giống như các ngôn ngữ lập trình khác, SQL không hỗ trợ phép chia vì thế chúng ta phải thể hiện nó thông qua sự hỗ trợ của các mệnh đề khác như JOIN, EXCEPT, IN.
Thông thường phép chia thường được dùng với các câu truy vấn có chứa từ khoá tất cả, ví dụ như:
- Tìm những người có tài khoản tại tất cả các ngân hàng trong một thành phố?
- Tìm những sinh viên đã học xong tất cả các môn để đủ điều kiện tốt nghiệp.
Cú pháp sử dụng phép chia
Cho cơ sở dữ liệu sau:

Cho các bảng R (A, B, C, D, E) và S (D, E) như sau:

Bị chia:
R Chia: S
Sử dụng EXCEPT
SELECT R1.A, R1.B, R1.C FROM R R1 WHERE NOT EXISTS ( ( SELECT S.D, S.E FROM S) EXCEPT ( SELECT R2.D, R2.E FROM R R2 WHERE R1.A=R2.A AND R1.B=R2.B AND R1.C=R2.C ) )Ví dụ Tìm các giáo viên (MAGV) mà tham gia tất cả các đề tài Bị chia : THAMGIADT (MAGV, MADT, …)Chia: DETAI (MADT, …)
SELECT DISTINCT TG1.MAGV FROM THAMGIADT TG1 WHERE NOT EXISTS ( ( SELECT MADT FROM DETAI) EXCEPT ( SELECT MADT FROM THAMGIADT TG2 WHERE TG2.MAGV = TG1.MAGV ) )Sử dụng NOT EXISTS
SELECT R1.A, R1.B, R1.C FROM R R1 WHERE NOT EXISTS ( SELECT * FROM S WHERE NOT EXISTS ( SELECT * FROM R R2 WHERE R2.D=S.D AND R2.E=S.E AND R1.A=R2.A AND R1.B=R2.B AND R1.C=R2.C ))Ví dụTìm các giáo viên (MAGV) mà tham gia tất cả các đề tài (Dùng NOT EXISTS)
Bị chia : THAMGIADT (MAGV, MADT, …)
Chia: DETAI (MADT, …)
SELECT TG.MAGV FROM THAMGIADT TG1 WHERE NOT EXISTS ( SELECT * FROM DETAI DT WHERE NOT EXISTS ( ))Sử dụng Gom nhóm
Cho R(A,B), S(B), thực hiện R÷S
SELECT R.A FROM R [WHERE R.B IN (SELECT S.B FROM S [WHERE <ĐK>]] GROUP BY R.A HAVING COUNT(DISTINCT R.B) = ( SELECT COUNT(S.B) FROM S [WHERE <ĐK>])Ví dụ Tìm các giáo viên (MAGV) mà tham gia tất cả các đề tài (Dùng NOT EXISTS)
SELECT TG.MAGV FROM THAMGIADT TG1 GROUP BY TG.MAGV HAVING COUNT(DISTINCT TG1.MADT) = ( SELECT COUNT(DT.MADT) FROM DETAI DT )Từ khóa » Phép Chia Trong Sql
-
Toán Tử Trong SQL
-
Mong Các Pro UIT Giúp Em Cái PHÉP CHIA TRONG SQL Dùng Not Exist
-
3 Loại Toán Tử Trong SQL Ai Cũng Cần Biết
-
Phép Chia Trong SQL (tt) - Tài Liệu Text - 123doc
-
Bài 7_6: Truy Vấn Sql Nâng Cao – Truy Vấn Lồng “Tất Cả”(phép Chia)
-
1-7 Phép Toán Tập Hợp Trong SQL - Viblo
-
Toán Tử Trong SQL - Học Sql Cơ Bản đến Nâng Cao - VietTuts
-
Ngôn Ngữ SQL – Phép Chia - TaiLieu.VN
-
Toán Tử Trong Sql - GreenSQL
-
NOT IN AND NOT EXISTS IN SQL - My Blog – My Favourite
-
Các Toán Tử Trong SQL Server - Học Phân Tích Dữ Liệu ... - MasterMOS
-
Nhờ Các Bạn Sửa Giùm Code Phép Chia Trong SQL !!