Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học
CƠ SCƠ SỞỞ DDỮỮ LILIỆỆUU
Ngôn ngữ SQL (Structured Query Language)
Trần Ngọc Bảo Email: tnbao.dhsp@gmail.com
CƠ SCƠ SỞỞ DDỮỮ LILIỆỆUU
Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học
NgNgôôn ngn ngữữ SQLSQL Structured Query Language)) ((Structured Query Language
• Giới thiệu về SQL
• Truy vấn dữ liệu với câu lệnh SELECT
Giới thiệu về SQL (tt)
• Ngôn ngữ ĐSQH
I I
– Cách thức truy vấn dữ liệu – Khó khăn cho người sử dụng • Ngôn ngữ giao tiếp CSDL: SQL
– Ngôn ngữ cấp cao – Người sử dụng chỉ cần đưa ra nội dung cần truy vấn – Được phát triển bởi IBM (1970s) – Ban đầu có tên là SEQUEL (Structured English Query Language) – Được ANSI (American National Standard Institute) công
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
nhận và phát triển thành chuẩn:
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
• SQL-86 (được ISO – International Standards Organization công nhận) •• SQLSQL--9292 • SQL-99
ÀÀ BB
KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH C SƯ PHẠẠM TP.HCM
33 M TP.HCM (cid:148)(cid:148) (3)(3) TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (3)
Giới thiệu về SQL (tt)
I I
• SEQUEL (cid:198) SQL (Structured Query Language -cuối 70s) gồm:
Lý thuyết : Chuẩn SQL-92
Ví dụ : SQL Server
– Định nghĩa dữ liệu (DDL) – Thao tác dữ liệu (DML) – Định nghĩa khung nhìn – Ràng buộc toàn vẹn – Phân quyền và bảo mật – Điều khiển giao tác • SQL sử dụng thuật ngữ
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
– Bảng ~ quan hệ – Cột ~ thuộc tính – Dòng ~ bộ
KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH C SƯ PHẠẠM TP.HCM
44 M TP.HCM (cid:148)(cid:148) (4)(4) TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (4)
Truy vấn dữ liệu
I I
• Là ngôn ngữ rút trích dữ liệu thỏa một số
điều kiện nào đó
+
Phép toán ĐSQH
Một số bổ sung
• Dựa trên • Lệnh cơ bản để rút trích thông tin từ
CSDL: SELECT
• Lệnh SELECT không hoàn toàn giống
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
phép chọn trong ĐSQH: – Cho phép có nhiều dòng trùng nhau trong kết
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
quả truy vấn
ÀÀ BB
KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH C SƯ PHẠẠM TP.HCM
55 M TP.HCM (cid:148)(cid:148) (5)(5) TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (5)
CÚ PHÁP CÂU LỆNH SELECT
I I
SELECT
FROM
WHERE
GROUP BY
< Điều kiện nhóm>
HAVING
ORDER BY < Danh sách cột cần sắp xếp>
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH C SƯ PHẠẠM TP.HCM
66 M TP.HCM (cid:148)(cid:148) (6)(6) TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (6)
Truy vấn cơ bản
• Gồm 3 mệnh đề
I I
SELECT
Tương ứng phép chiếu
FROM
WHERE <điều kiện>
Tương ứng phép tích, kết Tương ứng phép chọn
–
• Tên các cột cần được hiển thị trong kết quả truy vấn
–
• Tên các bảng liên quan đến câu truy vấn
– <điều kiện>
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
• Biểu thức boolean xác định dòng nào sẽ được rút trích • Nối các biểu thức: AND, OR, và NOT • Phép toán: < , > , ≤ , ≥ , ≠ , =, LIKE và BETWEEN
ÀÀ BB
KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH C SƯ PHẠẠM TP.HCM
77 M TP.HCM (cid:148)(cid:148) (7)(7) TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (7)
Truy vấn cơ bản (tt)
I I
•• SQL v
ĐSQH SQL vàà ĐSQH
SELECT
FROM
WHERE <điều kiện>
π × σ
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
SELECT LL SELECT
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
FROM RR FROM
I I
πL (σC (R))
ÀÀ BB
WHERE CC WHERE
KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH C SƯ PHẠẠM TP.HCM
88 M TP.HCM (cid:148)(cid:148) (8)(8) TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (8)
Phép chọn
I I
Yêu cầu truy vấn: Liệt kê danh sách sinh viên thuộc ngành “SP101”
c dòng trong quan hệệ SinhVien
SinhVien ththỏỏa a
ThThựực hic hiệện n CHCHỌỌNN ccáác dòng trong quan h mãn mãn điđiềều kiu kiệện MANGANH =
SP101’’ n MANGANH = ‘‘SP101
1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, MANGANH)
MASV HOTEN PHAI NGAYSINH MANGANH
K29.101.001 Nguyen Cong Phu Nam 10/10/1979 SP101
K29.101.002 Phan Anh Khanh Nu 1/10/1979 SP101
K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
K29.103.002 Pham Khanh Nhu Nu 10/12/1979 SP103
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
K29.201.001 Ly Thanh Nam 3/8/1979 SP201
ÀÀ BB
K29.201.002 Tran Ngoc Dung 4/5/1979 SP201 Nu
K29.104.001 Ho Anh Thu 1/4/1979 SP104 Nu
KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH C SƯ PHẠẠM TP.HCM
99 M TP.HCM (cid:148)(cid:148) (9)(9) TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (9)
Phép chọn
I I
Yêu cầu truy vấn: Liệt kê danh sách sinh viên thuộc ngành “SP101”
c dòng trong quan hệệ SinhVien
SinhVien ththỏỏa a
ThThựực hic hiệện n CHCHỌỌNN ccáác dòng trong quan h mãn mãn điđiềều kiu kiệện MANGANH =
SP101’’ n MANGANH = ‘‘SP101
(cid:137) Ngôn ngữ ĐSQL
σ MANGANH = ‘SP101’ (SINHVIEN)
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
(cid:137) Ngôn ngữ SQL
I I
SELECT *
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
Lấy tất cả các cột của quan hệ kết quả
I I
ÀÀ BB
FROM SINHVIEN
WHERE MANGANH = ‘SP101’
1010
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (10) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (10) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (10)
Phép chiếu
I I
Yêu cầu truy vấn: Liệt kê danh sách sinh viên (MASV, HOTEN, NGAYSINH)
trong (MASV, HOTEN, NGAYSINH) trong
ThThựực hic hiệện CHn CHỌỌN cN cáác Cc CỘỘTT (MASV, HOTEN, NGAYSINH) SinhVien quan hệệ SinhVien quan h
1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, MANGANH)
MASV HOTEN PHAI NGAYSINH MANGANH
K29.101.001 Nguyen Cong Phu Nam 10/10/1979 SP101
K29.101.002 Phan Anh Khanh Nu 1/10/1979 SP101
K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
K29.103.002 Pham Khanh Nhu Nu 10/12/1979 SP103
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
K29.201.001 Ly Thanh Nam 3/8/1979 SP201
ÀÀ BB
K29.201.002 Tran Ngoc Dung 4/5/1979 SP201 Nu
K29.104.001 Ho Anh Thu 1/4/1979 SP104 Nu
1111
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (11) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (11) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (11)
Phép chiếu
I I
Yêu cầu truy vấn: Liệt kê danh sách sinh viên (MASV, HOTEN, NGAYSINH)
ThThựực hic hiệện n PHPHÉÉP CHI P CHIẾẾUU ccáác Cc CỘỘTT (MASV, HOTEN, NGAYSINH) (MASV, HOTEN, NGAYSINH) SinhVien trong quan hệệ SinhVien trong quan h
(cid:137) Ngôn ngữ ĐSQL
π MASV, HOTEN, NGAYSINH (SINHVIEN)
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
(cid:137) Ngôn ngữ SQL
I I
SELECT MASV, HOTEN, NGAYSINH
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
FROM SINHVIEN
1212
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (12) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (12) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (12)
Phép kết
I I
Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, TENNGANH) sinh viên
2. Cách 2: SinhVien Nganh
7 x 1 = 7 dòng
MANGANH
TENNGANH
SOCD
TSSV
MASV
HOTEN
PHAI
NGAYSINH
MANGANH
SP103
Sư Phạm Tin học
8
800
K29.101.001
Nguyen Cong Phu
Nam
10/10/1979
SP101
SP101
Sư Phạm Toán
5
1000
K29.101.002
Phan Anh Khanh
Nu
1/10/1979
SP101
SP201
Sư Phạm Hóa
3
1500
K29.103.001
Han Quoc Viet
Nam
3/2/1979
SP103
SP102
Sư Phạm Lý
4
1200
K29.103.002
Pham Khanh Nhu
Nu
10/12/1979
SP103
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
K29.201.001
Ly Thanh
Nam
3/8/1979
SP201
CNTT
Khoa học máy tính
8
160
K29.201.002
Tran Ngoc Dung
Nu
4/5/1979
SP201
I I
SP104
Sư Phạm Lý
6
1000
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
K29.104.001
Ho Anh Thu
Nu
1/4/1979
SP104
I I
SP105
Sư phạm Anh
2
1100
ÀÀ BB
Thực hiện PHÉP KẾT thuộc tính MANGANH của quan hệ SINHVIEN với MANGANH của quan hệ NGANH
1313
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (13) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (13) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (13)
Phép kết
I I
Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, TENNGANH) sinh viên
Thực hiện PHÉP KẾT thuộc tính MANGANH của quan hệ SINHVIEN với MANGANH của quan hệ NGANH
NGANH)
(cid:137) Ngôn ngữ ĐSQL ∏MASV, HOTEN, NGAYSINH, TENNGANH (SINHVIEN
SINHVIEN.MANGANH = NGANH.MANGANH
(cid:137) Ngôn ngữ SQL
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
SELECT MASV, HOTEN, NGAYSINH, TENNGANH
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
FROM SINHVIEN JOIN NGANH ON SINHVIEN.MANGANH = NGANH.MANGANH
1414
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (14) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (14) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (14)
Sử dụng bí danh (Alias – AS)
I I
TRƯỜNG HỢP CÁC THUỘC TÍNH Ở CÁC QUAN HỆ KHÁC NHAU BỊ TRÙNG TÊN
SELECT MASV, HOTEN, NGAYSINH, TENNGANH
FROM SINHVIEN JOIN NGANH ON SINHVIEN.MANGANH = NGANH.MANGANH
SỬ DỤNG TÊN BÍ DANH
SELECT MASV, HOTEN, NGAYSINH, TENNGANH
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
FROM SINHVIEN AS SV JOIN NGANH AS N ON SV.MANGANH = N.MANGANH
ÀÀ BB
1515
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (15) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (15) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (15)
Kết hợp các phép toán
I I
Liệt kê danh sách chuyên đề (MACD, TENCD, SOSVTD) cần phải học của sinh viên ngành công nghệ phần mềm (TENNGANH = “CÔNG NGHỆ PHẦN MỀM”)
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
SELECT CD.MACD, TENCD, SOSVTD
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
FROM (NGANH AS N JOIN CD_NGANH AS CDN ON N.MANGANH = CDN.MANGANH ) JOIN CHUYENDE AS CD ON CD.MACD = CDN.MACD
ÀÀ BB
WHERE TENNGANH = ‘CÔNG NGHỆ PHẦN MỀM’
1616
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (16) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (16) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (16)
Hàm gộp
I I
• COUNT
– COUNT(*) đếm số dòng
– COUNT(
NULL của thuộc tính
– COUNT(DISTINCT
giá trị khác nhau và khác NULL của thuộc tính
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
• MIN • MAX • SUM • AVG • Các hàm kết hợp được đặt ở mệnh đề
ÀÀ BB
SELECT
1717
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (17) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (17) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (17)
Gom nhóm
I I
• Cú pháp
SELECT
FROM
WHERE <điều kiện>
GROUP BY
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
• Sau khi gom nhóm thì kết quả là – Nhóm các bộ có cùng giá trị tại các
ÀÀ BB
thuộc tính gom nhóm
1818
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (18) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (18) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (18)
Phép gom nhóm (tt)
•Ví dụ
I I
C
R
A
B
ISUM(C)(R)
7
2
α
7
4
α
Kết quả
3
2
β
ISUM(C)(R) = 27
10
2
γ
SELECT SUM(C)
FROM R
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
1919
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (19) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (19) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (19)
Phép gom nhóm (tt)
•Ví dụ
I I
C
R
A
B
7
2
α
AISUM(C)(R) Kết quả
A
SUM(C)
7
4
α
3
2
β
14
10
2
γ
3
α β γ
10
SELECT A, SUM(C)
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
FROM R
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
GROUP BY A
ÀÀ BB
2020
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (20) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (20) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (20)
Phép gom nhóm
I I
Liệt kê danh sách tên chuyên đề (TENCD) và số lần được mở tương ứng theo từng ngành (TENNGANH)
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
SELECT TENNGANH, TENCD, COUNT(CDM.MACD)
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
FROM ((NGANH AS N JOIN CD_NGANH AS CDN ON N.MANGANH = CDN.MANGANH ) JOIN CHUYENDE AS CD ON CD.MACD = CDN.MACD) JOIN CD_MO CDM ON CDM.MACD = CD.MACD
GROUP BY TENNGANH, TENCD
2121
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (21) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (21) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (21)
Điều kiện trên nhóm
• Cú pháp
I I
SELECT
FROM
WHERE <điều kiện>
GROUP BY
HAVING <điều kiện trên nhóm>
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
2222
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (22) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (22) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (22)
Nhận xét
• Mệnh đề GROUP BY
I I
– Các thuộc tính trong mệnh đề SELECT (trừ
những thuộc tính trong các hàm kết hợp) phải xuất hiện trong mệnh đề GROUP BY
• Mệnh đề HAVING
– Sử dụng các hàm kết hợp trong mệnh đề
SELECT để kiểm tra một số điều kiện nào đó
– Chỉ kiểm tra điều kiện trên nhóm, không là điều
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
kiện lọc trên từng bộ
I I
– Sau khi gom nhóm thì điều kiện trên nhóm mới
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
được thực hiện
ÀÀ BB
2323
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (23) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (23) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (23)
Nhận xét (tt)
I I
• Thứ tự thực hiện câu truy vấn có mệnh đề
GROUP BY và HAVING – (1) Chọn ra những dòng thỏa điều kiện trong mệnh
đề WHERE
– (2) Những dòng này sẽ được gom thành nhiều nhóm
tương ứng với mệnh đề GROUP BY
– (3) Áp dụng các hàm kết hợp cho mỗi nhóm – (4) Bỏ qua những nhóm không thỏa điều kiện trong
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
mệnh đề HAVING
I I
– (5) Rút trích các giá trị của các cột và hàm kết hợp
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
trong mệnh đề SELECT
ÀÀ BB
2424
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (24) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (24) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (24)
Điều kiện gom nhóm
I I
Với từng ngành học (MANGANH, TENNGANH), liệt kê danh sách tên chuyên đề (TENCD) có số lần được mở lớn hơn 3
SELECT N.MANGANH, TENNGANH, TENCD, COUNT (CDM.MACD) FROM ((NGANH AS N JOIN CD_NGANH AS CDN ON N.MANGANH = CDN.MANGANH)
JOIN CHUYENDE AS CD ON CD.MACD = CDN.MACD)
JOIN CD_MO AS CDM ON CD.MACD = CDM.MACD
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
GROUP BY N.MANGANH, TENNGANH, TENCD HAVING COUNT (CDM.MACD) > 3
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
2525
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (25) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (25) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (25)
QUI TRÌNH XỬ LÝ CÂU LỆNH SELECT
I I
Col1,Col2,Col3,..ColN TableA, TableB,… DK1 AND DK2 AND DK3
DKG1 AND DKG2 AND…
SELECT FROM WHERE GROUP BY ColA, ColB, ColC HAVING ORDER BY ColX, ColY, ColZ,…
(1)(1) (2)(2) (3)(3) (4)(4) (5)(5) (6)(6)
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
(2) (cid:198) (3) (cid:198) (4) (cid:198) (5) (cid:198) (6) (cid:198) (1)
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
2626
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (26) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (26) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (26)
QUI TRÌNH XỬ LÝ CÂU LỆNH SELECT
I I
FROM
CSDL
Tập kết quả 1
WHERE
Tập kết quả 2
GROUP BY
Tập kết quả 3
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
HAVING SELECT
I I
Tập kết quả 4
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ORDER BY
ÀÀ BB
Tập kết quả 5 KẾT QUẢ CUỐI CÙNG
2727
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (27) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (27) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (27)
I I
L L Q Q S S ỮỮ G G N N N N Ô Ô G G N N
I I
U U ỆỆ L L ỮỮ DD ỞỞ S S Ơ Ơ C C N N ẦẦ H H P P C C ỌỌ H H G G N N ẢẢ G G
I I
ÀÀ BB
2828
C SƯ PHẠẠM TP.HCM M TP.HCM (cid:148)(cid:148) (28) KHOA TOÁÁN N --TIN HTIN HỌỌC C (cid:148)(cid:148) Đ ĐẠẠI HI HỌỌC SƯ PH TRTRẦẦN NGN NGỌỌC BC BẢẢO O (cid:148)(cid:148) KHOA TO (28) TRẦN NGỌC BẢO (cid:148) KHOA TOÁN -TIN HỌC (cid:148) ĐẠI HỌC SƯ PHẠM TP.HCM (cid:148) (28)