Bài giảng Cơ sở dữ liệu: Chương III - ThS. Lương Thị Ngọc Khánh
Số trang: 80
Loại file: pdf
Dung lượng: 967.17 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 8 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Cơ sở dữ liệu - Chương III: Ngôn ngữ SQL nâng cao trình bày về câu truy vấn dữ liệu phức tạp; bảng ảo view; hàm – thủ tục - trigger và phần bài tập củng cố kiến thức ở cuối chương. Đây là bài giảng do ThS. Lương Thị Ngọc Khánh thực hiện. Mời bạn đọc cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở dữ liệu: Chương III - ThS. Lương Thị Ngọc Khánh CƠ SỞ DỮ LIỆUGV: ThS. Lương Thị Ngọc Khánh Email: ltnkhanh@it.tdt.edu.vn Web: it.tdt.edu.vn/~ltnkhanh Chương IIINGÔN NGỮ SQL NÂNG CAO Câu truy vấn dữ liệu phức tạp Bảng ảo View Hàm – thủ tục - trigger Bài tập Cơ sở dữ liệu ví dụ• CSDL Quản lý đề án: – NhanVien(manv, honv, tenlot, tennv, ngaysinh, diachi, phai, luong, manql, maphong) – PhongBan(maphong, tenphong, trphong, ngnhanchuc) – DDPhong(maphong, diadiem) – DeAn(tenda, mada, ddiemda, maphong) – PhanCong(manv, mada, thoigian) – ThanNhan(manv, tentn, phai, ngaysinh, quanhe)01-2014 504009 – Ngôn ngữ SQL nâng cao 3 Truy vấn lồng• Các câu lệnh SELECT có thể lồng nhau ở nhiều mức• Các câu truy vấn con trong cùng một mệnh đề WHERE được kết hợp bằng phép nối logic• Câu truy vấn con thường trả về một tập các giá trị01-2014 504009 – Ngôn ngữ SQL nâng cao 4 Truy vấn lồng (tt)• Cú pháp: SELECT FROM WHERE ( SELECT FROM WHERE )01-2014 504009 – Ngôn ngữ SQL nâng cao 5 Truy vấn lồng (tt)• Mệnh đề WHERE của câu truy vấn cha – – So sánh tập hợp thường đi cùng với một số toán tử • IN, NOT IN • ALL • ANY hoặc SOME – Kiểm tra sự tồn tại • EXISTS • NOT EXISTS01-2014 504009 – Ngôn ngữ SQL nâng cao 6 Truy vấn lồng (tt) – Có 2 loại truy vấn lồng: • Lồng phân cấp – Mệnh đề WHERE của truy vấn con không tham chiếu đến thuộc tính của các bảng trong mệnh đề FROM ở truy vấn cha – Câu truy vấn con sẽ được thực hiện trước, 1 lần • Lồng tương quan – Mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc tính của các bảng trong mệnh đề FROM ở truy vấn cha – Khi thực hiện, câu truy vấn con sẽ được thực hiện nhiều lần, mỗi lần tương ứng với một bộ của truy vấn cha01-2014 504009 – Ngôn ngữ SQL nâng cao 7 Truy vấn lồng (tt) – Ví dụ truy vấn lồng phân cấp: SELECT MANV, TENNV FROM NHANVIEN, DDPhong WHERE DIADIEM = ‘TP HCM’ AND phong = maphong – Tương đương với câu truy vấn lồng sau: SELECT MANV, TENNV FROM NHANVIEN WHERE PHONG IN (SELECT MAPHONG FROM DDPHONG WHERE DIADIEM = ‘TP HCM’ )01-2014 504009 – Ngôn ngữ SQL nâng cao 8 Truy vấn lồng (tt)• Ví dụ: Tìm những nhân viên không có thân nhân nào01-2014 504009 – Ngôn ngữ SQL nâng cao 9 Truy vấn lồng (tt) – Ví dụ truy vấn lồng tương quan: SELECT MANV, TENNV FROM NHANVIEN WHERE EXISTS ( SELECT * FROM PHONGBAN WHERE TENPHONG=‘Nghien cuu’ AND PHONG=MAPHONG) Câu truy vấn trên cho kết quả gì? Tương đương với câu truy vấn đơn giản nào? SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE TENPHONG=‘Nghien cuu’ AND PHONG=MAPHONG01-2014 Ths. Lương Thị Ngọc Khánh – Khoa CNTTNgônTĐT 504009 – - ĐH ngữ SQL nâng cao 10 Truy vấn lồng (tt)• Tìm nhân viên có người thân cùng tên và cùng giới tính với nhân viên đó01-2014 Ths. Lương Thị Ngọc Khánh – Khoa CNTTNgônTĐT 504009 – - ĐH ngữ SQL nâng cao 11 Truy vấn lồng (tt)• Tìm những nhân viên có lương lớn hơn lương của ít nhất một nhân viên phòng 4• Tìm những nhân viên có lương lớn hơn lương của tất cả nhân viên phòng 401-2014 Ths. Lương Thị Ngọc Khánh – Khoa CNTTNgônTĐT 504009 – - ĐH ngữ SQL nâng cao 12 Truy vấn lồng – Nhận xét• IN – IN – Thuộc tính ở mệnh đề SELECT của truy vấn con phải có cùng kiểu dữ liệu với thuộc tính ở mệnh đề WHERE của truy vấn cha• EXISTS – Không cần có thuộc tính, hằng số hay biểu thức nào khác đứng trước – Không nhất thiết liệt kê tên thuộc tính ở mệnh đề SELECT của truy vấn con – Những câu truy vấn có = ANY hay IN đều có thể chuyển thành câu truy vấn có EXISTS01-2014 504009 – Ngôn ngữ SQL nâng cao 13 13 Hàm kết hợp và gom nhóm• Hàm kết hợp: – Được sử dụng trong mệnh đề SELECT – Có các hàm kết hợp sau: • COUNT – COUNT(*) đếm số dòng – COUNT() đếm số giá trị khác NULL của thuộc tính – COUNT(DISTINCT ) đếm số giá trị khác nhau và khác NULL của thuộc ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cơ sở dữ liệu: Chương III - ThS. Lương Thị Ngọc Khánh CƠ SỞ DỮ LIỆUGV: ThS. Lương Thị Ngọc Khánh Email: ltnkhanh@it.tdt.edu.vn Web: it.tdt.edu.vn/~ltnkhanh Chương IIINGÔN NGỮ SQL NÂNG CAO Câu truy vấn dữ liệu phức tạp Bảng ảo View Hàm – thủ tục - trigger Bài tập Cơ sở dữ liệu ví dụ• CSDL Quản lý đề án: – NhanVien(manv, honv, tenlot, tennv, ngaysinh, diachi, phai, luong, manql, maphong) – PhongBan(maphong, tenphong, trphong, ngnhanchuc) – DDPhong(maphong, diadiem) – DeAn(tenda, mada, ddiemda, maphong) – PhanCong(manv, mada, thoigian) – ThanNhan(manv, tentn, phai, ngaysinh, quanhe)01-2014 504009 – Ngôn ngữ SQL nâng cao 3 Truy vấn lồng• Các câu lệnh SELECT có thể lồng nhau ở nhiều mức• Các câu truy vấn con trong cùng một mệnh đề WHERE được kết hợp bằng phép nối logic• Câu truy vấn con thường trả về một tập các giá trị01-2014 504009 – Ngôn ngữ SQL nâng cao 4 Truy vấn lồng (tt)• Cú pháp: SELECT FROM WHERE ( SELECT FROM WHERE )01-2014 504009 – Ngôn ngữ SQL nâng cao 5 Truy vấn lồng (tt)• Mệnh đề WHERE của câu truy vấn cha – – So sánh tập hợp thường đi cùng với một số toán tử • IN, NOT IN • ALL • ANY hoặc SOME – Kiểm tra sự tồn tại • EXISTS • NOT EXISTS01-2014 504009 – Ngôn ngữ SQL nâng cao 6 Truy vấn lồng (tt) – Có 2 loại truy vấn lồng: • Lồng phân cấp – Mệnh đề WHERE của truy vấn con không tham chiếu đến thuộc tính của các bảng trong mệnh đề FROM ở truy vấn cha – Câu truy vấn con sẽ được thực hiện trước, 1 lần • Lồng tương quan – Mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc tính của các bảng trong mệnh đề FROM ở truy vấn cha – Khi thực hiện, câu truy vấn con sẽ được thực hiện nhiều lần, mỗi lần tương ứng với một bộ của truy vấn cha01-2014 504009 – Ngôn ngữ SQL nâng cao 7 Truy vấn lồng (tt) – Ví dụ truy vấn lồng phân cấp: SELECT MANV, TENNV FROM NHANVIEN, DDPhong WHERE DIADIEM = ‘TP HCM’ AND phong = maphong – Tương đương với câu truy vấn lồng sau: SELECT MANV, TENNV FROM NHANVIEN WHERE PHONG IN (SELECT MAPHONG FROM DDPHONG WHERE DIADIEM = ‘TP HCM’ )01-2014 504009 – Ngôn ngữ SQL nâng cao 8 Truy vấn lồng (tt)• Ví dụ: Tìm những nhân viên không có thân nhân nào01-2014 504009 – Ngôn ngữ SQL nâng cao 9 Truy vấn lồng (tt) – Ví dụ truy vấn lồng tương quan: SELECT MANV, TENNV FROM NHANVIEN WHERE EXISTS ( SELECT * FROM PHONGBAN WHERE TENPHONG=‘Nghien cuu’ AND PHONG=MAPHONG) Câu truy vấn trên cho kết quả gì? Tương đương với câu truy vấn đơn giản nào? SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE TENPHONG=‘Nghien cuu’ AND PHONG=MAPHONG01-2014 Ths. Lương Thị Ngọc Khánh – Khoa CNTTNgônTĐT 504009 – - ĐH ngữ SQL nâng cao 10 Truy vấn lồng (tt)• Tìm nhân viên có người thân cùng tên và cùng giới tính với nhân viên đó01-2014 Ths. Lương Thị Ngọc Khánh – Khoa CNTTNgônTĐT 504009 – - ĐH ngữ SQL nâng cao 11 Truy vấn lồng (tt)• Tìm những nhân viên có lương lớn hơn lương của ít nhất một nhân viên phòng 4• Tìm những nhân viên có lương lớn hơn lương của tất cả nhân viên phòng 401-2014 Ths. Lương Thị Ngọc Khánh – Khoa CNTTNgônTĐT 504009 – - ĐH ngữ SQL nâng cao 12 Truy vấn lồng – Nhận xét• IN – IN – Thuộc tính ở mệnh đề SELECT của truy vấn con phải có cùng kiểu dữ liệu với thuộc tính ở mệnh đề WHERE của truy vấn cha• EXISTS – Không cần có thuộc tính, hằng số hay biểu thức nào khác đứng trước – Không nhất thiết liệt kê tên thuộc tính ở mệnh đề SELECT của truy vấn con – Những câu truy vấn có = ANY hay IN đều có thể chuyển thành câu truy vấn có EXISTS01-2014 504009 – Ngôn ngữ SQL nâng cao 13 13 Hàm kết hợp và gom nhóm• Hàm kết hợp: – Được sử dụng trong mệnh đề SELECT – Có các hàm kết hợp sau: • COUNT – COUNT(*) đếm số dòng – COUNT() đếm số giá trị khác NULL của thuộc tính – COUNT(DISTINCT ) đếm số giá trị khác nhau và khác NULL của thuộc ...
Tìm kiếm theo từ khóa liên quan:
Cơ sở dữ liệu Bài giảng Cơ sở dữ liệu Cơ sở dữ liệu Chương III Ngôn ngữ SQL nâng cao Truy vấn dữ liệu phức tạp Bảng ảo viewTài liệu liên quan:
-
62 trang 404 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 380 6 0 -
13 trang 302 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 299 0 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 294 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 262 1 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 251 0 0 -
Giáo trình về dữ liệu và các mô hình cơ sở dữ liệu
62 trang 191 0 0 -
8 trang 186 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - Đại học Kinh tế TP. HCM
115 trang 179 0 0