Đạ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

< Danh sách các bảng> <Điều kiện chọn>

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() đế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

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)