Bài giảng Ngôn ngữ SQL - Trần Ngọc Bảo

pdf 28 trang huongle 3160
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ SQL - Trần Ngọc Bảo", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_ngon_ngu_sql_tran_ngoc_bao.pdf

Nội dung text: Bài giảng Ngôn ngữ SQL - Trần Ngọc Bảo

  1. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CCƠƠ SSỞỞ DDỮỮ LILIỆỆUU Ngôn ngữ SQL (Structured Query Language) Trần Ngọc Bảo Email: tnbao.dhsp@gmail.com
  2. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CCƠƠ SSỞỞ DDỮỮ LILIỆỆUU NgNgôônn ngngữữ SQLSQL ((StructuredStructured QueryQuery LanguageLanguage)) • Giới thiệu về SQL • Truy vấn dữ liệu với câu lệnh SELECT
  3. Giới thiệu về SQL (tt) U U • Ngôn ngữ ĐSQH Ệ Ệ LI LI – Cách thức truy vấn dữ liệu Ữ Ữ D D – Khó khăn cho người sử dụng Ở Ở • Ngôn ngữ giao tiếp CSDL: SQL S S Ơ Ơ SQL SQL – Ngôn ngữ cấp cao Ữ Ữ N C – Người sử dụng chỉ cần đưa ra nội dung cần truy vấn N C Ầ Ầ – Được phát triển bởi IBM (1970s) – Ban đầu có tên là SEQUEL (Structured English Query Language) C PH C PH Ọ Ọ – Được ANSI (American National Standard Institute) công NGÔN NG NGÔN NG nhận và phát triển thành chuẩn: NG H NG H • SQL-86 (được ISO – International Standards Organization công nhận) Ả Ả • SQL-92 I GI I GI • SQL-99 À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN H3HỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (3)(3)
  4. Giới thiệu về SQL (tt) U U Ệ Ệ • SEQUEL Æ SQL (Structured Query Language -cuối 70s) gồm: LI LI Ữ Ữ – Định nghĩa dữ liệu (DDL) D D Ở Ở – Thao tác dữ liệu (DML) S S – Định nghĩa khung nhìn Lý thuyết : Chuẩn SQL-92 Ơ Ơ SQL SQL Ữ Ữ – Ràng buộc toàn vẹn N C N C Ví dụ : SQL Server Ầ Ầ – Phân quyền và bảo mật C PH C PH – Điều khiển giao tác Ọ Ọ • SQL sử dụng thuật ngữ NGÔN NG NGÔN NG NG H NG H Ả Ả –Bảng ~ quan hệ I GI I GI –Cột ~ thuộc tính À À B B –Dòng~ bộ TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN H4HỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (4)(4)
  5. Truy vấn dữ liệu U U Ệ Ệ LI LI • Là ngôn ngữ rút trích dữ liệu thỏa một số Ữ Ữ D D điều kiện nào đó Ở Ở Phép toán ĐSQH + Một số bổ sung S S • Dựa trên Ơ Ơ SQL SQL Ữ Ữ • Lệnh cơ bản để rút trích thông tin từ N C N C Ầ Ầ CSDL: SELECT C PH C PH Ọ Ọ • Lệnh SELECT không hoàn toàn giống NGÔN NG NGÔN NG phép chọn trong ĐSQH: NG H NG H Ả Ả – Cho phép có nhiều dòng trùng nhau trong kết I GI I GI quả truy vấn À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN H5HỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (5)(5)
  6. CÚ PHÁP CÂU LỆNH SELECT U U Ệ Ệ SELECT LI LI Ữ Ữ FROM D D Ở Ở WHERE S S Ơ Ơ GROUP BY SQL SQL Ữ Ữ N C N C HAVING Ầ Ầ ORDER BY C PH C PH Ọ Ọ NGÔN NG NGÔN NG NG H NG H Ả Ả I GI I GI À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN H6HỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (6)(6)
  7. Truy vấn cơ bản U U Ệ Ệ • Gồm 3 mệnh đề LI LI Ữ Ữ SELECT Tương ứng phép chiếu D D Ở Ở FROM Tương ứng phép tích, kết S S WHERE Tương ứng phép chọn Ơ Ơ SQL SQL Ữ Ữ N C – N C Ầ Ầ • Tên các cột cần được hiển thị trong kết quả truy vấn – C PH C PH Ọ Ọ • Tên các bảng liên quan đến câu truy vấn NGÔN NG – NGÔN NG NG H NG H • 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 I GI I GI • Phép toán: , ≤ , ≥ , ≠ , =,LIKE vàBETWEEN À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN H7HỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (7)(7)
  8. Truy vấn cơ bản (tt) U U Ệ Ệ LI LI ••SQLSQL vvàà ĐĐSQHSQH Ữ Ữ D D Ở Ở S S SELECT Ơ Ơ π SQL SQL FROM Ữ × Ữ N C N C Ầ Ầ σ WHERE C PH C PH Ọ Ọ NGÔN NG NGÔN NG SELECT L NG H NG H Ả Ả FROM R I GI I GI À À πL (σC (R)) B B WHERE C TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN H8HỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (8)(8)
  9. Phép chọn U U Yêu cầu truy vấn: Liệt kê danh sách sinh viên thuộc ngành Ệ Ệ LI LI “SP101” Ữ Ữ Thực hiện CHỌN các dòng trong quan hệ SinhVien thỏa D D mãn điều kiện MANGANH = ‘SP101’ Ở Ở S S 1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, MANGANH) Ơ Ơ SQL SQL Ữ Ữ N C N C MASV HOTEN PHAI NGAYSINH MANGANH Ầ Ầ K29.101.001 Nguyen Cong Phu Nam 10/10/1979 SP101 C PH C PH K29.101.002 Phan Anh Khanh Nu 1/10/1979 SP101 Ọ Ọ K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103 NGÔN NG NGÔN NG NG H NG H K29.103.002 Pham Khanh Nhu Nu 10/12/1979 SP103 Ả Ả I GI I GI K29.201.001 Ly Thanh Nam 3/8/1979 SP201 À À B B K29.201.002 Tran Ngoc Dung Nu 4/5/1979 SP201 K29.104.001 Ho Anh Thu Nu 1/4/1979 SP104 TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN H9HỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (9)(9)
  10. Phép chọn U U Yêu cầu truy vấn: Liệt kê danh sách sinh viên thuộc ngành Ệ Ệ LI LI “SP101” Ữ Ữ D D Thực hiện CHỌN các dòng trong quan hệ SinhVien thỏa Ở Ở mãn điều kiện MANGANH = ‘SP101’ S S Ơ Ơ SQL SQL ‰ Ngôn ngữ ĐSQL Ữ Ữ N C N C Ầ Ầ σ MANGANH = ‘SP101’ (SINHVIEN) C PH C PH Ọ Ọ NGÔN NG NGÔN NG ‰ Ngôn ngữ SQL NG H NG H Ả Ả Lấy tất cả các cột của quan SELECT * hệ kết quả I GI I GI À À B B FROM SINHVIEN WHERE MANGANH = ‘SP101’ TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN10 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (10)(10)
  11. Phép chiếu U Yêu cầu truy vấn: Liệt kê danh sách sinh viên (MASV, HOTEN, U Ệ Ệ NGAYSINH) LI LI Ữ Ữ Thực hiện CHỌN các CỘT (MASV, HOTEN, NGAYSINH) trong D D quan hệ SinhVien Ở Ở S S 1. SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, MANGANH) Ơ Ơ SQL SQL Ữ Ữ N C N C MASV HOTEN PHAI NGAYSINH MANGANH Ầ Ầ K29.101.001 Nguyen Cong Phu Nam 10/10/1979 SP101 C PH C PH K29.101.002 Phan Anh Khanh Nu 1/10/1979 SP101 Ọ Ọ K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103 NGÔN NG NGÔN NG NG H NG H K29.103.002 Pham Khanh Nhu Nu 10/12/1979 SP103 Ả Ả I GI I GI K29.201.001 Ly Thanh Nam 3/8/1979 SP201 À À B B K29.201.002 Tran Ngoc Dung Nu 4/5/1979 SP201 K29.104.001 Ho Anh Thu Nu 1/4/1979 SP104 TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN11 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (11)(11)
  12. Phép chiếu U U Yêu cầu truy vấn: Liệt kê danh sách sinh viên (MASV, HOTEN, Ệ Ệ NGAYSINH) LI LI Ữ Ữ Thực hiện PHÉP CHIẾU các CỘT (MASV, HOTEN, NGAYSINH) D D trong quan hệ SinhVien Ở Ở S S Ơ Ơ SQL SQL ‰ Ngôn ngữ ĐSQL Ữ Ữ N C N C Ầ Ầ π MASV, HOTEN, NGAYSINH (SINHVIEN) C PH C PH Ọ Ọ NGÔN NG NGÔN NG ‰ Ngôn ngữ SQL NG H NG H Ả Ả SELECT MASV, HOTEN, NGAYSINH I GI I GI À À B B FROM SINHVIEN TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN12 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (12)(12)
  13. Phép kết U U Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, Ệ Ệ TENNGANH) sinh viên LI LI Ữ Ữ D D 2. Cách 2: SinhVien Nganh 7 x 1 = 7 dòng Ở Ở S S MASV HOTEN PHAI NGAYSINH MANGANH MANGANH TENNGANH SOCD TSSV Ơ Ơ SQL SQL SP103 Sư Phạm Tin học 8 800 K29.101.001 Nguyen Cong Phu Nam 10/10/1979 SP101 Ữ Ữ N C N C Ầ Ầ K29.101.002 Phan Anh Khanh Nu 1/10/1979 SP101 SP101 Sư Phạm Toán 5 1000 SP201 Sư Phạm Hóa 3 1500 K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103 C PH C PH Ọ Ọ K29.103.002 Pham Khanh Nhu Nu 10/12/1979 SP103 SP102 Sư Phạm Lý 4 1200 NGÔN NG NGÔN NG K29.201.001 Ly Thanh Nam 3/8/1979 SP201 CNTT Khoa học máy tính 8 160 NG H NG H Ả Ả K29.201.002 Tran Ngoc Dung Nu 4/5/1979 SP201 SP104 Sư Phạm Lý 6 1000 K29.104.001 Ho Anh Thu Nu 1/4/1979 SP104 I GI I GI SP105 Sư phạm Anh 2 1100 À À B B 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 TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN13 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (13)(13)
  14. Phép kết U U Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, Ệ Ệ TENNGANH) sinh viên LI LI Ữ Ữ D D Thực hiện PHÉP KẾT thuộc tính MANGANH của quan hệ Ở Ở S S SINHVIEN với MANGANH của quan hệ NGANH Ơ Ơ SQL SQL Ữ Ữ N C N C ‰ Ngôn ngữ ĐSQL Ầ Ầ ∏MASV, HOTEN, NGAYSINH, TENNGANH (SINHVIEN NGANH) C PH C PH SINHVIEN.MANGANH = NGANH.MANGANH Ọ Ọ ‰ Ngôn ngữ SQL NGÔN NG NGÔN NG NG H NG H Ả Ả SELECT MASV, HOTEN, NGAYSINH, TENNGANH I GI I GI FROM SINHVIEN JOIN NGANH ON À À B B SINHVIEN.MANGANH = NGANH.MANGANH TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN14 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (14)(14)
  15. Sử dụng bí danh (Alias – AS) U U TRƯỜNG HỢP CÁC THUỘC TÍNH Ở CÁC QUAN HỆ KHÁC NHAU BỊ Ệ Ệ TRÙNG TÊN LI LI Ữ Ữ D D SELECT MASV, HOTEN, NGAYSINH, TENNGANH Ở Ở S S FROM SINHVIEN JOIN NGANH ON Ơ Ơ SQL SQL SINHVIEN.MANGANH = NGANH.MANGANH Ữ Ữ N C N C Ầ Ầ SỬ DỤNG TÊN BÍ DANH C PH C PH Ọ Ọ SELECT MASV, HOTEN, NGAYSINH, TENNGANH NGÔN NG NGÔN NG NG H NG H Ả Ả FROM SINHVIEN AS SV JOIN NGANH AS N ON I GI I GI SV.MANGANH = N.MANGANH À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN15 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (15)(15)
  16. Kết hợp các phép toán U U 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 = LI LI Ữ “CÔNG NGHỆ PHẦN MỀM”) Ữ D D Ở Ở S S Ơ Ơ SQL SQL Ữ Ữ N C N C Ầ Ầ C PH C PH Ọ Ọ NGÔN NG NGÔN NG SELECT CD.MACD, TENCD, SOSVTD NG H NG H Ả Ả FROM (NGANH AS N JOIN CD_NGANH AS CDN ON I GI I GI N.MANGANH = CDN.MANGANH ) JOIN CHUYENDE AS CD ON À À CD.MACD = CDN.MACD B B WHERE TENNGANH = ‘CÔNG NGHỆ PHẦN MỀM’ TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN16 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (16)(16)
  17. Hàm gộp U U Ệ Ệ •COUNT LI LI – COUNT(*) đếm số dòng Ữ Ữ D D – COUNT( ) đếm số giá trị khác Ở Ở NULL của thuộc tính S S Ơ Ơ SQL SQL – COUNT(DISTINCT ) đếm số Ữ Ữ N C N C giá trị khác nhau và khác NULL của thuộc tính Ầ Ầ •MIN C PH C PH Ọ Ọ •MAX NGÔN NG NGÔN NG •SUM NG H NG H Ả Ả •AVG I GI I GI À À • Các hàm kết hợp được đặt ở mệnh đề B B SELECT TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN17 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (17)(17)
  18. Gom nhóm U U Ệ Ệ • Cú pháp LI LI Ữ Ữ D D SELECT Ở Ở S S Ơ Ơ FROM SQL SQL Ữ Ữ N C N C WHERE Ầ Ầ GROUP BY C PH C PH Ọ Ọ NGÔN NG NGÔN NG NG H NG H • Sau khi gom nhóm thì kết quả là Ả Ả I GI I GI – Nhóm các bộ có cùng giá trị tại các À À B B thuộc tính gom nhóm TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN18 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (18)(18)
  19. Phép gom nhóm (tt) U U Ệ Ệ •Ví dụ LI LI R ABC Ữ Ữ I (R) D D SUM(C) α 2 7 Ở Ở S S α 4 7 Kết quả Ơ Ơ SQL SQL β 2 3 Ữ Ữ N C N C ISUM(C)(R) = 27 Ầ Ầ γ 2 10 C PH C PH SELECT SUM(C) Ọ Ọ FROM R NGÔN NG NGÔN NG NG H NG H Ả Ả I GI I GI À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN19 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (19)(19)
  20. Phép gom nhóm (tt) U U Ệ Ệ •Ví dụ LI LI R ABC Ữ Ữ AISUM(C)(R) Kết quả D D α 2 7 Ở Ở A SUM(C) S S α 4 7 Ơ Ơ SQL 14 SQL α β 2 3 Ữ Ữ N C N C β 3 Ầ Ầ γ 2 10 γ 10 C PH C PH Ọ Ọ SELECT A, SUM(C) NGÔN NG NGÔN NG NG H NG H Ả Ả FROM R I GI I GI GROUP BY A À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN20 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (20)(20)
  21. Phép gom nhóm U U Liệt kê danh sách tên chuyên đề (TENCD) và số lần Ệ Ệ LI LI được mở tương ứng theo từng ngành (TENNGANH) Ữ Ữ D D Ở Ở S S Ơ Ơ SQL SQL Ữ Ữ N C N C Ầ Ầ C PH C PH Ọ Ọ NGÔN NG NGÔN NG NG H NG H Ả Ả SELECT TENNGANH, TENCD, COUNT(CDM.MACD) I GI I GI FROM ((NGANH AS N JOIN CD_NGANH AS CDN ON N.MANGANH = À À CDN.MANGANH ) JOIN CHUYENDE AS CD ON CD.MACD = CDN.MACD) B B JOIN CD_MO CDM ON CDM.MACD = CD.MACD GROUP BY TENNGANH, TENCD TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN21 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (21)(21)
  22. Điều kiện trên nhóm U U Ệ Ệ • Cú pháp LI LI Ữ Ữ SELECT D D Ở Ở S FROM S Ơ Ơ SQL SQL WHERE Ữ Ữ N C N C Ầ Ầ GROUP BY C PH C PH Ọ HAVING Ọ NGÔN NG NGÔN NG NG H NG H Ả Ả I GI I GI À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN22 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (22)(22)
  23. Nhận xét U U Ệ Ệ •Mệnh đề GROUP BY LI LI – Các thuộc tính trong mệnh đề SELECT (trừ Ữ Ữ D D 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 S S Ơ Ơ SQL SQL •Mệnh đề HAVING Ữ Ữ N C N C Ầ Ầ – 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 đó C PH C PH Ọ Ọ – Chỉ kiểm tra điều kiện trên nhóm, không là điều NGÔN NG NGÔN NG kiện lọc trên từng bộ NG H NG H Ả Ả – Sau khi gom nhóm thì điều kiện trên nhóm mới I GI I GI được thực hiện À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN23 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (23)(23)
  24. Nhận xét (tt) U U Ệ Ệ • Thứ tự thực hiện câu truy vấn có mệnh đề LI LI Ữ Ữ GROUP BY và HAVING D D Ở –(1) Chọn ra những dòng thỏa điều kiện trong mệnh Ở S S đề WHERE Ơ Ơ SQL SQL –(2) Những dòng này sẽ được gom thành nhiều nhóm Ữ Ữ N C N C Ầ Ầ 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 C PH C PH Ọ Ọ –(4) Bỏ qua những nhóm không thỏa điều kiện trong NGÔN NG NGÔN NG mệnh đề HAVING NG H NG H Ả Ả – (5) Rút trích các giá trị của các cột và hàm kết hợp I GI I GI trong mệnh đề SELECT À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN24 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (24)(24)
  25. Điều kiện gom nhóm U U Ệ Với từng ngành học (MANGANH, TENNGANH), liệt Ệ LI LI kê danh sách tên chuyên đề (TENCD) có số lần Ữ Ữ D D được mở lớn hơn 3 Ở Ở S S Ơ SELECT N.MANGANH, TENNGANH, TENCD, COUNT Ơ SQL SQL (CDM.MACD) Ữ Ữ N C N C FROM ((NGANH AS N JOIN CD_NGANH AS CDN ON Ầ Ầ N.MANGANH = CDN.MANGANH) JOIN CHUYENDE AS CD ON CD.MACD = CDN.MACD) C PH C PH Ọ Ọ JOIN CD_MO AS CDM ON CD.MACD = CDM.MACD NGÔN NG GROUP BY N.MANGANH, TENNGANH, TENCD NGÔN NG NG H NG H HAVING COUNT (CDM.MACD) > 3 Ả Ả I GI I GI À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN25 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (25)(25)
  26. QUI TRÌNH XỬ LÝ CÂU LỆNH SELECT U U Ệ Ệ LI LI SELECT Col1,Col2,Col3, ColN (1) Ữ Ữ D D FROM TableA, TableB, (2) Ở Ở WHERE DK1 AND DK2 AND DK3 (3) S S Ơ Ơ SQL SQL GROUP BY ColA, ColB, ColC (4) Ữ Ữ N C N C HAVING DKG1 AND DKG2 AND (5) Ầ Ầ ORDER BY ColX, ColY, ColZ, (6) C PH C PH Ọ Ọ NGÔN NG NGÔN NG NG H NG H Ả Ả (2) Æ (3) Æ (4) Æ (5) Æ (6) Æ (1) I GI I GI À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN26 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (26)(26)
  27. QUI TRÌNH XỬ LÝ CÂU LỆNH SELECT U U Ệ Ệ FROM LI LI CSDL Ữ Ữ Tập kết quả 1 D D Ở Ở S S WHERE Ơ Ơ SQL SQL Tập kết quả 2 Ữ Ữ N C N C Ầ Ầ GROUP BY C PH C PH Tập kết quả 3 Ọ Ọ NGÔN NG NGÔN NG HAVING SELECT NG H NG H Ả Ả Tập kết quả 4 I GI I GI À À ORDER BY B B KẾT QUẢ Tập kết quả 5 CUỐI CÙNG TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN27 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (27)(27)
  28. U U Ệ Ệ LI LI Ữ Ữ D D Ở Ở S S Ơ Ơ SQL SQL Ữ Ữ N C N C Ầ Ầ C PH C PH Ọ Ọ NGÔN NG NGÔN NG NG H NG H Ả Ả I GI I GI À À B B TRTRẦẦNN NGNGỌỌCC BBẢẢOO ”” KHOAKHOA TOTOÁNÁN TINTIN28 HHỌỌCC ”” ĐĐẠẠII HHỌỌCC SSƯƯ PHPHẠẠMM TP.HCMTP.HCM ”” (28)(28)