Truy vấn lồng (truy vấn con)

Một phần của tài liệu cơ sở dữ liệu (Trang 62 - 63)

CHƯƠNG 4 : NGÔN NGỮ TRUY VẤN SQL

4.3. Các lệnh truy vấn cơ sở dữ liệu

4.3.4. Truy vấn lồng (truy vấn con)

Trong nhiều trường hợp ta phải tìm kiếm thơng tin qua nhiều bước, kết quả của bước trước được sử dụng trong biểu thức của câu truy vấn tiếp theo, rồi kết quả này lại có th ể được sử dụng trong câu truy vấn tiếp theo nữa. Ngôn ngữ SQL với câu lệnh SELECT cho phép lấy ngay kết quả câu truy vấn để xây dựng biếu thức điều kiện cho một câu hỏi khác. Câu hỏi trung gian đó được gọi là câu h ỏi con (SubQuery). Câu hỏi con phải được bao trong cặp dấu ngoặc trong biểu thức của câu hỏi chính.

Truy vấn lồng (SubQuery) là một trong những ưu điểm nổi bật của ngôn ngữ SQL. Các mệnh đề thường được sử dụng với truy vấn con:

– IN/NOTIN

+ Cú pháp: <bi ểu thức>[not] IN (<truy vấn con>)

+ Ví dụ 4.19: Cho biết họ tên các sinh viên chưa có điểm mơn h ọc nào SELECT HOTEN

FROM SINHVIEN

WHERE MASV NOT IN ( SELECT DISTINCT MASV FROM KETQUA)

– Mệnh đề ANY

+ Cú pháp: <bi ểu thức><phép toán so sánh> ANY (<truy v ấn con>). + Ví dụ 4.20: Cho biết họ tên các sinh viên đã có điểm thi mơn CSDL

SELECT HOTEN FROM SINHVIEN

WHERE MASV = ANY ( SELECT MASV FROM KETQUA

WHERE MAMH = ‘CSDL’) – Mệnh đề SOME (tương tự như ANY).

– Mệnh đề ALL.

+ Cú pháp: <bi ểu thức><phép toán so sánh> ALL (<truy v ấn con>). + Ví dụ 4.21: Cho biết tên các mơn h ọc có s ố tín chỉ lớn nhất

SELECT TENMH FROM MONHOC

WHERE SOTC >= ALL ( SELECT SOTC

– Kiểm tra sự tồn tại [NOT]EXISTS

+ Cấu trúc: [NOT]EXISTS (<truy v ấn con>).

+ Ví dụ 4.22: Cho biết họ tên những sinh viên chưa có điểm mơn h ọc nào.

SELECT HOTEN

FROM SINHVIEN

WHERE NOT EXISTS ( SELECT *

FROM KETQUA

WHERE KETQUA.MASV = SINHVIEN.MASV)

Một phần của tài liệu cơ sở dữ liệu (Trang 62 - 63)

Tải bản đầy đủ (DOC)

(136 trang)
w