Bài giảng Cơ sở dữ liệu: Chương IIII - ThS. Lương Thị Ngọc Khánh
lượt xem 8
download
CƠ SỞ DỮ LIỆU.GV: ThS. Lương Thị Ngọc Khánh Email: ltnkhanh@it.tdt.edu.vn Web: it.tdt.edu.vn/~ltnkhanh...Chƣơng III..NGÔ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..
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cơ sở dữ liệu: Chương IIII - ThS. Lương Thị Ngọc Khánh
- CƠ SỞ DỮ LIỆU GV: ThS. Lương Thị Ngọc Khánh Email: ltnkhanh@it.tdt.edu.vn Web: it.tdt.edu.vn/~ltnkhanh
- Chƣơng III NGÔ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 EXISTS 01-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 cha 01-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ào 01-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=MAPHONG 01-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 4 01-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ó EXISTS 01-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ính • MIN, MAX, SUM, AVG 01-2014 504009 – Ngôn ngữ SQL nâng cao 14
- Hàm kết hợp và gom nhóm (tt) • Ví dụ: – Tìm tổng lương, lương cao nhất, lương thấp nhất và lương trung bình của các nhân viên – Select sum(luong) as ‘tong luong’, min(luong) as ‘luong nho nhat’, max(luong) as ‘luong lon nhat’, avg(luong) as ‘luong tb’ From NhanVien – Cho biết số lượng nhân viên của phòng „Nghien cuu‟ 01-2014 504009 – Ngôn ngữ SQL nâng cao 15
- Hàm kết hợp và gom nhóm (tt) • Gom nhóm: – Nhóm các bộ có cùng giá trị ở một tập các thuộc tính lại với nhau – Cú pháp: SELECT FROM WHERE GROUP BY 01-2014 504009 – Ngôn ngữ SQL nâng cao 16
- Hàm kết hợp và gom nhóm (tt) • Ví dụ: – Cho biết số lượng nhân viên của từng phòng ban – Cho biết thông tin của những phòng ban có nhiều hơn 10 nhân viên 01-2014 504009 – Ngôn ngữ SQL nâng cao 17
- Hàm kết hợp và gom nhóm (tt) • Ví dụ: – Với mỗi nhân viên cho biết mã số, họ tên, số lượng đề án và tổng thời gian mà họ tham gia SELECT HONV, TENNV, COUNT(*) AS SL_DA,SUM(THOIGIAN) AS TONG_TG FROM PHANCONG, NHANVIEN WHERE MANVIEN=MANV GROUP BY MA_NVIEN, HONV, TENNV – Cho biết những nhân viên tham gia từ 2 đề án trở lên 01-2014 504009 – Ngôn ngữ SQL nâng cao 18
- Hàm kết hợp và gom nhóm (tt) • Cú pháp: SELECT FROM WHERE GROUP BY HAVING • Ví dụ: Cho biết những nhân viên tham gia từ 2 đề án trở lên 01-2014 504009 – Ngôn ngữ SQL nâng cao 19
- Hàm kết hợp và gom nhóm (tt) • Ví dụ: – Cho biết những phòng ban (TENPHONG) có lương trung bình của các nhân viên lớn lơn 20000 01-2014 504009 – Ngôn ngữ SQL nâng cao 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cơ sở dữ liệu: Bài 1 - ĐH CNTT
15 p | 610 | 30
-
Bài giảng Cơ sở dữ liệu quan hệ và SQL: Chương 1 - CĐ CNTT Hữu nghị Việt Hàn
27 p | 292 | 23
-
Bài giảng Cơ sở dữ liệu: Chương III - ThS. Lương Thị Ngọc Khánh
80 p | 174 | 18
-
Bài giảng Cơ sở dữ liệu - Bài 2: Mô hình cơ sở dữ liệu quan hệ
43 p | 224 | 18
-
Bài giảng Cơ sở dữ liệu: Bài 5 - ĐH CNTT
41 p | 115 | 17
-
Bài giảng Cơ sở dữ liệu Web và XML: Chương 2 - GV. Hồ Văn Phi
43 p | 116 | 15
-
Bài giảng Cơ sở dữ liệu: Chương 2 - ThS. Hoàng Mạnh Hà
68 p | 152 | 12
-
Bài giảng Cơ sở dữ liệu - Bài 3: Ngôn ngữ SQL
37 p | 156 | 12
-
Bài giảng Cơ sở dữ liệu - Bài 4: Phụ thuộc hàm
54 p | 201 | 12
-
Bài giảng Cơ sở dữ liệu: Chương 1 - ThS. Hoàng Mạnh Hà
26 p | 187 | 10
-
Bài giảng Cơ sở dữ liệu: Chương I - ThS. Lương Thị Ngọc Khánh
25 p | 88 | 9
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Ths. Lê Ngọc Lãm
19 p | 125 | 7
-
Bài giảng Cơ sở dữ liệu: Bài 2 - ĐH CNTT
34 p | 92 | 7
-
Bài giảng Cơ sở dữ liệu: Mở đầu - ThS. Lương Thị Ngọc Khánh
11 p | 177 | 6
-
Bài giảng Cơ sở dữ liệu - Bài 1: Tổng quan
40 p | 112 | 4
-
Bài giảng Cơ sở dữ liệu: Chương 1 - GV. Đỗ Thị Kim Thành
21 p | 104 | 4
-
Bài giảng Cơ sở dữ liệu: Chương 2 - Trần Thị Dung
39 p | 8 | 4
-
Bài giảng Cơ sở dữ liệu (Database) - Chương 1: Các khái niệm cơ bản về hệ cơ sở dữ liệu
34 p | 70 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn