1. Trang chủ
  2. » Công Nghệ Thông Tin

truy vấn con

29 176 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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 Truy vấn con 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’? Truy vấn chính: ? ? Mức lương của Trần Hồng là bao nhiêu? ? ? Truy vấn con 33 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Cú pháp truy vấn conTruy vấn con thi hành môt lần trước truy vấn chính (truy vấn cha). • Kết quả trả về từ truy vấn con được sử dụng trong câu truy vấ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 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 bên phải điều kiện so sánh. • Mệnh đề ORDER BY trong truy vấn con 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 truy vấn con trả về một dòng và sử dụng các toán tử nhiều dòng với 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 dòng Truy vấn chính Truy vấn con Trả về • Truy vấn con một dòng 77 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truy vấn con 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); Truy vấn con 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 truy vấn con 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 truy vấn con • Các truy vấn con được thi hành trước tiên. • Kết quả được trả về cho mệnh đề HAVING trong truy vấ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 Truy vấn con kết hợp Truy vấn con kết hợp (Correlated subqueries) được sử dụng cho việc xử lý từng dòng Mỗi truy vấn con sẽ được thi hành một lần ứng với mỗi dòng của truy vấn cha GET Đọc dòng (giá trị) từ truy vấn cha EXECUTE Truy vấn con thi hành theo giá trị vừa đọc USE Các giá trị trả về từ truy vấn con được sử dụng để xử lý hoặc hiển thị 24 TRƯỜNG... • Tạo truy vấn con để truy vấn các giá trị dựa trên những tiêu chí đã biết khác • Sử dụng truy vấn con để 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 Truy vấn con 18 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... câu truy vấn bên ngoài được xử lý thì câu truy vấn con 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 truy vấn con • Tìm thấy một dòng trong truy vấn con: • − − Kết thúc tìm kiếm trong truy vấn con 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 truy vấn con. .. dòng được sử dụng với truy vấn con 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à'); Truy vấn con 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 Truy vấn con nhiều dòng • • Trả... TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Truy vấn con 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 truy vấn con liên kết với cột từ bảng của truy vấ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 truy vấn con 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 truy vấn con 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 Truy vấn con trong mệnh đề FROM Sử dụng truy vấn con đơn trị (scalar subquery) Viết truy vấn con 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 Truy vấn con 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 truy vấn con 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 truy vấn con đơn trị • Biểu thức truy vấn con đơn trị (A scalar subquery... Biểu thức truy vấn con đơn trị (A scalar subquery expression) là một truy vấn con trả về duy nhất một cột và một dòng • Truy vấn con đơ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ụ Truy vấn con đơ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

Ngày đăng: 23/05/2014, 18:24

Xem thêm

TỪ KHÓA LIÊN QUAN