Bài giảng Cơ sở dữ liệu: Chương III - ThS. Lương Thị Ngọc Khánh
lượt xem 18
download
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.
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 III - 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 đất đai
49 p | 633 | 79
-
Bài giảng Cơ sở dữ liệu - Nguyễn Quỳnh Chi
189 p | 267 | 51
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Tổng quan về cơ sở dữ liệu
21 p | 181 | 31
-
Bài giảng Cơ sở dữ liệu: Bài 1 - ĐH CNTT
15 p | 607 | 30
-
Bài giảng Cơ sở dữ liệu - Bài 2: Mô hình cơ sở dữ liệu quan hệ
43 p | 221 | 18
-
Bài giảng Cơ sở dữ liệu: Chương 2 - ThS. Hoàng Mạnh Hà
68 p | 151 | 12
-
Bài giảng Cơ sở dữ liệu (Database): Chương 4 - TS. Đặng Thị Thu Hiền
82 p | 39 | 8
-
Bài giảng Cơ sở dữ liệu - Chương 4: Chuẩn hóa cơ sở dữ liệu
30 p | 134 | 8
-
Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Toàn vẹn và cơ sở dữ liệu active
50 p | 81 | 8
-
Bài giảng Cơ sở dữ liệu (Database): Chương 1 - TS. Đặng Thị Thu Hiền
53 p | 47 | 7
-
Bài giảng Cơ sở dữ liệu: Phần 1 – Nguyễn Hải Châu
54 p | 122 | 6
-
Bài giảng Cơ sở dữ liệu: Mở đầu - ThS. Lương Thị Ngọc Khánh
11 p | 169 | 6
-
Bài giảng Cơ sở dữ liệu nâng cao: Bài 1.1 - PGS.TS. Đỗ Phúc
25 p | 90 | 6
-
Bài giảng Cơ sở dữ liệu: Chương 1 - Th.S Thiều Quang Trung
40 p | 93 | 5
-
Bài giảng Cơ sở dữ liệu - Bài 1: Thiết kế Cơ sở dữ liệu với Management Studio
10 p | 62 | 5
-
Bài giảng Cơ sở dữ liệu nâng cao: Bài 2 - PGS.TS. Đỗ Phúc
55 p | 66 | 4
-
Bài giảng Cơ sở dữ liệu: Chương 1 - GV. Đỗ Thị Kim Thành
21 p | 102 | 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 | 68 | 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