Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Nội dung
11 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truyvấncon 22 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Vấn đề cần giải quyết Ai có mức lương cao hơn lương của ‘Trần Hồng’ ? Những nhân viên nào có mức lương lớn hơn lương của NV ‘Trần Hồng’? Truyvấn chính: ? ? Mức lương của Trần Hồng là bao nhiêu? ? ? Truyvấncon 33 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cú pháp truyvấncon • Truyvấncon thi hành môt lần trước truyvấn chính (truy vấn cha). • Kết quả trả về từ truyvấncon được sử dụng trong câu truyvấn chính. SELECT ds_cot FROM bang WHERE bieu_thuc toan_tu (SELECT bieu_thuc FROM bang) 44 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC SELECT honv, tennv FROM qlns.nhanvien WHERE mucluong > (SELECT mucluong FROM qlns.nhanvien WHERE tennv = N‘Huyền'); Sử dụng truyvấncon 5.000.000 55 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Một số quy tắc khi sử dụng truyvấncon • Câu truyvấncon phải nằm trong cặp ngoặc đơn. • Đặt truyvấncon bên phải điều kiện so sánh. • Mệnh đề ORDER BY trong truyvấncon là không cần thiết ngoại trừ khi có sử dụng mệnh đề TOP. • Sử dụng các toán tử một dòng với các truyvấncon trả về một dòng và sử dụng các toán tử nhiều dòng với các truyvấncon trả về nhiều dòng. 66 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các dạng truyvấnconTruyvấn chính Truyvấncon Trả về Một dòng • Truyvấncon nhiều dòng Nhiều dòng Truyvấn chính Truyvấncon Trả về • Truyvấncon một dòng 77 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truyvấncon một dòng • Trả về duy nhất 1 dòng • Sử dụng các toán tử so sánh một dòng Toán tử = > >= < <= <> Ý nghĩa Bằng Lớn hơn Lớn hơn hoặc bằng Nhỏ hơn Nhỏ hơn học bằng Không bằng 88 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC SELECT tennv, macongviec, mucluong FROM qlns.nhanvien WHERE macongviec = (SELECT macongviec FROM qlns.nhanvien WHERE manhanvien = 141) AND mucluong > (SELECT mucluong FROM qlns.nhanvien WHERE manhanvien = 143); Truyvấncon một dòng TTHI 3.000.000 99 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC SELECT tennv, macongviec, mucluong FROM qlns.nhanvien WHERE mucluong = (SELECT MIN(mucluong) FROM qlns.nhanvien); Sử dụng hàm nhóm dữ liệu trong truyvấncon 1.200.000 1010 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mệnh đề HAVING với truyvấncon • Các truyvấncon được thi hành trước tiên. • Kết quả được trả về cho mệnh đề HAVING trong truyvấn chính. SELECT maphong, MIN(mucluong) FROM qlns.nhanvien GROUP BY maphong HAVING MIN(mucluong) > (SELECT MIN(mucluong) FROM qlns.nhanvien WHERE maphong = 60) 3.000.000 [...]... ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truyvấncon kết hợp Truyvấncon kết hợp (Correlated subqueries) được sử dụng cho việc xử lý từng dòng Mỗi truyvấncon sẽ được thi hành một lần ứng với mỗi dòng của truyvấn cha GET Đọc dòng (giá trị) từ truyvấn cha EXECUTE Truyvấncon thi hành theo giá trị vừa đọc USE Các giá trị trả về từ truyvấncon được sử dụng để xử lý hoặc hiển thị 24 TRƯỜNG... • Tạo truyvấncon để truyvấn các giá trị dựa trên những tiêu chí đã biết khác • Sử dụng truyvấncon để tìm ra những giá trị nào có trong một tập dữ liệu này và không có trong những tập khác 17 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Phần mở rộng của Truyvấncon 18 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mục tiêu • • • • • Truyvấncon nhiều cột Truyvấncon trong... câu truyvấn bên ngoài được xử lý thì câu truyvấncon lại được tính lại 26 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Sử dụng hàm EXISTS • Hàm EXISTS kiểm tra tồn tại kết quả trả về từ câu truyvấncon • Tìm thấy một dòng trong truyvấn con: • − − Kết thúc tìm kiếm trong truyvấncon Trả về kết quả TRUE Nếu chưa tìm thấy dòng nào: − − Trả về FALSE Tiếp tục tìm kiếm trong truyvấn con. .. dòng được sử dụng với truyvấncon nhiều dòng 11 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Câu lệnh sau có trả về kết quả nào không? SELECT tennv, macongviec FROM qlns.nhanvien WHERE macongviec = (SELECT macongviec FROM qlns.nhanvien WHERE tennv = 'Haà'); Truyvấncon không trả về giá trị nào cả 12 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truyvấncon nhiều dòng • • Trả... TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truyvấncon kết hợp SELECT cot1, cot2, bang_cha FROM bang1 WHERE cot1 toan_tu (SELECT cot1, cot2 FROM bang2 WHERE bieu_thuc1 = bang_cha.bieu_thuc2) Câu truyvấncon liên kết với cột từ bảng của truyvấn cha 25 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Sử dụng truyvấncon kết hợp Tìm tất cả những nhân viên có mức lương lớn hơn... viên có quản lý ít nhất một người SELECT manhanvien, tennv, macongviec, maphong FROM qlns.nhanvien BangCha WHERE EXISTS ( SELECT 'X' FROM qlns.nhanvien WHERE manguoiquanly = BangCha.manhanvien) 28 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Thực hành • • • • Tạo truyvấncon nhiều cột Viết truy vấn con kết hợp Sử dụng truy vấn con đơn trị Sử dụng hàm EXISTS 29 ... thỏa một trong các giá trị trả về bởi truy vấn con ALL Phải thỏa tất cả các giá trị trả về bởi truy vấn con 13 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Sử dụng toán tử ANY SELECT manhanvien, tennv, macongviec, mucluong FROM qlns.nhanvien 1.200.000, 4.000.000 WHERE mucluong < ANY (SELECT mucluong FROM qlns.nhanvien WHERE macongviec = ‘BHANG') AND macongviec ‘BHANG'; … 14 TRƯỜNG ĐẠI... NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mục tiêu • • • • • Truy vấn con nhiều cột Truyvấncon trong mệnh đề FROM Sử dụng truyvấncon đơn trị (scalar subquery) Viết truyvấncon kết hợp (Correlated subquery) Sử dụng hàm EXISTS 19 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truyvấncon trả về nhiều cột Liệt kê danh sách những nhân viên được quản lý bởi bởi cùng một người và làm trong cùng phòng... TRUNG TÂM TIN HỌC Sử dụng truyvấncon trong mệnh đề FROM SELECT FROM WHERE AND a.tennv, a.mucluong, a.maphong, b.tb_luong qlns.nhanvien a, (SELECT maphong, AVG(mucluong) tb_luong FROM qlns.nhanvien GROUP BY maphong) b a.maphong = b.maphong a.mucluong > b.tb_luong; 21 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Biểu thức truyvấncon đơn trị • Biểu thức truyvấncon đơn trị (A scalar subquery... Biểu thức truyvấncon đơn trị (A scalar subquery expression) là một truyvấncon trả về duy nhất một cột và một dòng • Truyvấncon đơn trị có thể sử dụng: − − Trong các điều kiện và biểu thức của CASE Trong tất cả các mệnh đề của SELECT ngoại trừ GROUP BY 22 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ví dụ Truyvấncon đơn trị Trong biểu thức CASE SELECT manhanvien, tennv, (CASE WHEN . truy vấn con 5.000.000 55 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Một số quy tắc khi sử dụng truy vấn con • Câu truy vấn con phải nằm trong cặp ngoặc đơn. • Đặt truy vấn con. các truy vấn con trả về nhiều dòng. 66 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Các dạng truy vấn con Truy vấn chính Truy vấn con Trả về Một dòng • Truy vấn con nhiều dòng Nhiều. HỌC Phần mở rộng của Truy vấn con 1919 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Mục tiêu • Truy vấn con nhiều cột • Truy vấn con trong mệnh đề FROM • Sử dụng truy vấn con đơn trị (scalar