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 đấ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 | 40 | 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 | 48 | 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 | 69 | 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