Danh mục

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    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 28,000 VND Tải xuống file đầy đủ (80 trang) 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 ...

Tài liệu được xem nhiều: