Slide bài giảng môn cơ sở dữ liệu (ĐH quốc gia HCM)

14 231 1
Slide bài giảng môn cơ sở dữ liệu (ĐH quốc gia HCM)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BUỔI Bài 6: Ngôn ngữ SQL (tiếp theo) Khoa HTTT - Dương Khai Phong Nội dung 5.6 5.7 5.8 Câu truy vấn (subquery) Not Exists lồng (Phép chia) Hàm tính tốn, gom nhóm Khoa HTTT - Dương Khai 5.6 Câu truy vấn (subquery) In Exists Ví dụ: Tìm số hóa đơn mua lúc sản phẩm số “BB01” “BB02” SOHD MASP SL 1001 BB01 1002 BB02 1002 TV03 1001 BB02 SOHD 1001 select distinct sohd from CTHD where masp='BB01' SOHD 1002 select distinct sohd from CTHD where masp='BB02' 1001 Khoa HTTT - Dương Khai Kết truy vấn SOHD 1001 5.6 Câu truy vấn (subquery) Cách 1: IN select distinct sohd from CTHD where masp='BB01' and In Exists sohd IN (select sohdsố from CTHD Ví dụdistinct : Tìm hóa đơnwhere mua lúc sản phẩm masp='BB02') số “BB01” “BB02” Cách 2: EXISTS SOHD MASP SL select distinct A.sohd SOHD select distinct sohd 1001 BB01 A where from CTHD A.masp='BB01' and 1001 from CTHD EXISTS ( select * from CTHD B 1002 BB02 where masp='BB01' where B.masp='BB02‘ and 1002 TV03 A.sohd=B.sohd) 1001 BB02 SOHD 1002 select distinct sohd from CTHD where masp='BB02' 1001 Khoa HTTT - Dương Khai Kết truy vấn SOHD 1001 5.6 Câu truy vấn (subquery) Not In Not Exists Ví dụ: dụ: Tìm số hóa đơn mua sản phẩm mã số ‘BB01’ khơng mua sản phẩm mã số ‘BB02’  select distinct sohd from CTHD where masp='BB01' and sohd NOT IN (select distinct sohd from CTHD where masp='BB02') masp='BB02')  select distinct A.sohd from CTHD A where A.masp='BB01' and NOT EXITST (select (select * from CTHD B where B.masp='BB02‘ and A.sohd=B.sohd) A.sohd=B.sohd) Khoa HTTT - Dương Khai 5.7 Phép chia Sử dụng NOT EXISTS lồng Ví dụ: Tìm số hóa đơn mua tất sản phẩm “Trung Quoc” sản xuất SANPHAM MASP TENSP HOADON NUOCSX SoHD MaKH CTHD SoHD MaSP BC01 But chi Trung Quoc 1001 KH01 1001 BC01 BB01 But bi Viet Nam 1002 KH02 1001 ST01 TV01 Tap Trung Quoc 1003 KH03 1001 TV01 ST01 But long Trung Quoc 1002 ST02 But long Thai Lan 1003 BC01 1003 TV01 1003 ST01 ST02 Khoa HTTT - Dương Khai A: danh sách hoá đơn mua không hết sp TQ sản xuất A: sp TQ sx khơng nằm quan hệ CTHD ứng với hoá đơn xét 1002 5.7 Phép chia A 1001 1001 TV01 BC01 TV01 Sử dụng NOT EXISTS lồng A: select * from SANPHAM 1002 ST01 Ví dụ: Tìm số hóa đơn mua tất where nuocsx=‘Trung Quoc’sản phẩm and not exists (select * from CTHD “Trung Quoc” sản xuất Select Sohd from HOADON where HOADON.sohd=CTHD.sohd and CTHD.masp=SANPHAM.masp) Where not exists ( A ) SANPHAM MASP TENSP HOADON NUOCSX SoHD MaKH Select Sohd from Trung HOADON BC01 But chi Quoc 1001 KH01 where notButexists (select SANPHAM BB01 bi Viet Nam * from1002 KH02 where nuocsx=‘Trung TV01 Tap Trung Quoc 1003 KH03Quoc’ ST01 But long ST02 But long CTHD SoHD MaSP 1001 BC01 1001 ST01 1001 TV01 and exists (select * from CTHD 1002 ST02 Trungnot Quoc where HOADON.sohd=CTHD.sohd 1003 BC01 Thai Lan and CTHD.masp=SANPHAM.masp 1003 TV01 )) Khoa HTTT - Dương Khai 1003 ST01 5.8 Các hàm tính tốn gom nhóm 5.8.1 Các hàm tính tốn       COUNT: Đếm số liệu thuộc tính MIN: Tính giá trị nhỏ MAX: Tính giá trị lớn AVG: Tính giá trị trung bình SUM: Tính tổng giá trị liệu … Khoa HTTT - Dương Khai 5.8 Các hàm tính tốn gom nhóm 5.8.1 Các hàm tính tốn Ví dụ: Cho quan hệ NHANVIEN sau NHANVIEN MANV HOTEN PHAI MANQL PHONG LUONG NV001 Nguyễn Ngọc Linh Nữ NV002 Đinh Bá Tiến Null NC 2.800.000 Nam NV002 DH 2.000.000 NV003 Nguyễn Văn Mạnh Nam NV001 NC 2.300.000 NV004 Trần Thanh Long Nam NV002 DH 1.800.000 NV005 Nguyễn Thị Hồng Vân Nữ NV001 NC 2.500.000 NV006 Nguyễn Minh Nam NV002 DH 2.000.000 NV007 Hà Duy Lập Nam NV003 NC 1.800.000 NV008 Trần Kim Duyên Nữ NV003 NC 1.800.000 NC 2.000.000 NV009 Nguyễn Kim Anh Nữ NV003 Khoa HTTT - Dương Khai 5.8 Các hàm tính tốn gom nhóm 5.8.1 Các hàm tính tốn Xét câu truy vấn sau: tất nhân viên Tính lương thấp nhất, cao nhất, trung bình tổng lương tất nhân viên Bao nhiêu nhân viên người quản lý Bao nhiêu phòng ban nhân viên trực thuộc Khoa HTTT - Dương Khai 10 5.8 Các hàm tính tốn gom nhóm 5.8.1 Các hàm tính tốn tất nhân viên SELECT count(*) FROM NhanVien Tính lương thấp nhất, cao nhất, trung bình tổng lương tất nhân viên SELECT min(luong) as thapnhat,max(luong) as caonhat, avg(luong) as trungbinh,sum(luong) as tongluong FROM NhanVien Bao nhiêu nhân viên người quản lý C1: SELECT count(*) FROM NhanVien WHERE manql is not null C2: SELECT count(Manql) FROM NhanVien Bao nhiêu phòng ban nhân viên trực thuộc SELECT count(distinct phong) FROM NhanVien Khoa HTTT - Dương Khai 11 5.8 Các hàm tính tốn gom nhóm 5.8.2 Gom nhóm: mệnh đề GROUP BY Sử dụng hàm gom nhóm quan hệ Mỗi nhóm bao gồm tập hợp giá trị thuộc tính gom nhóm Hàm gom nhóm áp dụng độc lập SQL mệnh đề GROUP BY để thuộc tính gom nhóm, thuộc tính phải xuất mệnh đề SELECT Khoa HTTT - Dương Khai 12 5.8 Các hàm tính tốn gom nhóm 5.8.2 Gom nhóm: mệnh đề GROUP BY Tính lương trung bình nhân viên theo phòng ban SELECT FROM GROUP BY phong, avg(LUONG) as LUONGTB NhanVien phong Khoa HTTT - Dương Khai 13 5.8 Các hàm tính tốn gom nhóm 5.8.2 Gom nhóm: mệnh đề GROUP BY Điều kiện sau gom nhóm: mệnh đề HAVING  Lọc kết theo điều kiện, sau gom nhóm  Điều kiện HAVING thực sau gom nhóm, điều kiện liên quan đến thuộc tính Group By Ví dụ: tìm phòng số lượng nhân viên “Nữ” người SELECT phong FROM NhanVien WHERE phai = ‘Nữ’ GROUP BY phong HAVING count(manv) > Khoa HTTT - Dương Khai 14 ... hàm tính tốn       COUNT: Đếm số liệu thuộc tính MIN: Tính giá trị nhỏ MAX: Tính giá trị lớn AVG: Tính giá trị trung bình SUM: Tính tổng giá trị liệu … Khoa HTTT - Dương Khai 5.8 Các hàm

Ngày đăng: 07/06/2018, 12:49

Từ khóa liên quan

Mục lục

  • BUỔI 5

  • Nội dung

  • 5.6 Câu truy vấn con (subquery)

  • Slide 4

  • Slide 5

  • 5.7 Phép chia

  • Slide 7

  • 5.8 Các hàm tính toán và gom nhóm

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

Tài liệu cùng người dùng

Tài liệu liên quan