Bài giảng Tin học đại cương - Chương 5: Cơ sở dữ liệu - Học viện Nông nghiệp Việt Nam
Bạn đang xem tài liệu "Bài giảng Tin học đại cương - Chương 5: Cơ sở dữ liệu - Học viện Nông nghiệp Việt Nam", để 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:
bai_giang_tin_hoc_dai_cuong_chuong_5_co_so_du_lieu_hoc_bien.pdf
Nội dung text: Bài giảng Tin học đại cương - Chương 5: Cơ sở dữ liệu - Học viện Nông nghiệp Việt Nam
- 03/02/2018 HỌC VIỆN NÔNG NGHIỆP VIỆT NAM Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương KHOA CÔNG NGHỆ THÔNG TIN NỘI DUNG 5.1. Cơ sở dữ liệu 5.2. Hệ quản trị cơ sở dữ liệu 5.3. Ngôn ngữ truy vấn SQL Chương 5 CƠ SỞ DỮ LIỆU 08/02/2017 Chương 5. Cơ sở dữ liệu 2 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.1. CƠ SỞ DỮ LIỆU 5.1.1. KHÁI NIỆM CƠ SỞ DỮ LIỆU • Cơ sở dữ liệu (database): là một tập hợp các dữ liệu có 5.1.1. Khái niệm cơ sở dữ liệu liên quan với nhau, chứa thông tin về một tổ chức nào 5.1.2. Các mức thể hiện của cơ sở dữ liệu đó (như một trường đại học, một ngân hàng, một bệnh 5.1.3. Mô hình dữ liệu quan hệ viện, một công ty, ) được lưu trữ trên các thiết bị nhớ 5.1.4. Hệ cơ sở dữ liệu thứ cấp (băng từ, đĩa từ, ) để đáp ứng nhu cầu khai 5.1.5. Lợi ích của hệ cơ sở dữ liệu thác thông tin của nhiều người sử dụng với nhiều mục đích khác nhau 08/02/2017 Chương 5. Cơ sở dữ liệu 3 08/02/2017 Chương 5. Cơ sở dữ liệu 4 1
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương VÍ DỤ VỀ CSDL VÍ DỤ VỀ CSDL Xét ví dụ CSDL sinh viên • Bảng Sinh viên: • Bảng Khoa: • Bảng Lớp: 08/02/2017 Chương 5. Cơ sở dữ liệu 5 08/02/2017 Chương 5. Cơ sở dữ liệu 6 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương VÍ DỤ VỀ CSDL 5.1.2. CÁC MỨC THỂ HIỆN CỦA CSDL • Mức vật lý (mức trong): - Cho biết cách thức lưu trữ dữ liệu trong bộ nhớ như • Bảng Môn học: thế nào? Ở đâu? Cần các chỉ mục gì? Việc truy xuất như thế nào? • Mức logic (mức khái niệm): - Trả lời câu hỏi cần phải lưu trữ những loại dữ liệu gì? - Mối quan hệ giữa chúng như thế nào? • Mức khung nhìn (mức ngoài): • Bảng Kết quả: - Là mức của NDC và các chương trình ứng dụng - Mỗi NDC hay chương trình ứng dụng có thể được nhìn CSDL theo một góc độ (khung nhìn) khác nhau 08/02/2017 Chương 5. Cơ sở dữ liệu 7 08/02/2017 Chương 5. Cơ sở dữ liệu 8 2
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.1.2. CÁC MỨC THỂ HIỆN CỦA CSDL 5.1.3. MÔ HÌNH DỮ LIỆU QUAN HỆ • Mô hình dữ liệu: là một tập hợp các khái niệm và ký pháp dùng để mô tả dữ liệu, các mối quan hệ của dữ liệu, các ràng buộc trên dữ liệu của một tổ chức • Các mô hình dữ liệu: - Mô hình dữ liệu quan hệ (Relational Data Model) - Mô hình dữ liệu mạng (Network Data Model) - Mô hình dữ liệu phân cấp (Hierarchical Data Model) - Mô hình dữ liệu thực thể liên kết (Entity Relationship Data Model) - Mô hình dữ liệu hướng đối tượng (Object Oriented Data Model) - 08/02/2017 Chương 5. Cơ sở dữ liệu 9 08/02/2017 Chương 5. Cơ sở dữ liệu 10 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.1.3. MÔ HÌNH DỮ LIỆU QUAN HỆ Các khái niệm trong mô hình dữ liệu quan hệ • Mô hình dữ liệu quan hệ được đề xuất bởi E.F.Codd • Quan hệ vào những năm 1970 - 1972 • Lược đồ • Biểu diễn mọi dữ liệu dưới dạng các bảng (quan hệ) • Thuộc tính Một CSDL quan hệ thường gồm nhiều bảng, mỗi • Bộ bảng chứa dữ liệu của một tập thực thể được chia • Khóa thành các hàng (bản ghi – record) và các cột (trường - • Khóa ngoại field) • Cơ sở dữ liệu được xây dựng trên mô hình dữ liệu quan hệ được gọi là CSDL quan hệ 08/02/2017 Chương 5. Cơ sở dữ liệu 11 08/02/2017 Chương 5. Cơ sở dữ liệu 12 3
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương Quan hệ Lược đồ (schema) • Dữ liệu trong CSDL quan hệ được tổ chức thành các • Tên của một quan hệ và tập các thuộc tính của nó bảng 2 chiều, mỗi bảng là một quan hệ được gọi là một lược đồ đối với quan hệ đó • Cách biểu diễn: Tên quan hệ (danh sách các thuộc tính) • Ví dụ: lược đồ quan hệ: Khoa(MaKhoa, TenKhoa, SoDT) 08/02/2017 Chương 5. Cơ sở dữ liệu 13 08/02/2017 Chương 5. Cơ sở dữ liệu 14 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương Thuộc tính Bộ (tuble) • Thuộc tính là một tính chất riêng biệt của một đối • Mỗi dòng của một quan hệ, trừ dòng tiêu đề ghi tên tượng cần được lưu trữ trong CSDL để phục vụ cho của các thuộc tính, được gọi là một bộ (bản ghi - việc khai thác dữ liệu về đối tượng record) • Thuộc tính được đặc trưng bởi: • Các bộ không được trùng nhau trong một quan hệ - Tên gọi: thuộc tính được đặt tên theo cách gợi nhớ và theo quy định - Kiểu dữ liệu: mỗi thuộc tính đều phải thuộc một kiểu dữ liệu nhất định - Miền giá trị (domain): là tập tất cả các giá trị mà thuộc tính có thể nhận 08/02/2017 Chương 5. Cơ sở dữ liệu 15 08/02/2017 Chương 5. Cơ sở dữ liệu 16 4
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương Khóa (key – khóa chính) Khóa ngoại (foreign key) • Là tập gồm một hoặc các thuộc tính tối thiểu để xác • Là tập gồm một hay nhiều thuộc tính không phải là định được tính duy nhất của mỗi bộ trong quan hệ đó khóa chính của lược đồ quan hệ này nhưng lại là khóa • Ví dụ: chính của một lược đồ quan hệ khác - Quan hệ Khoa(MaKhoa, TenKhoa, SoDT) chọn • Dùng để biểu thị mối liên kết giữa quan hệ này với MaKhoa làm khóa chính quan hệ khác trong mô hình quan hệ - Quan hệ Ketqua(MaSV, MaMH, Diem) cặp • Ví dụ: {MaSV, MaMH} làm khóa chính KHOA(Makhoa, Tenkhoa, SoDT) LOP(MaLop, TenLop, Makhoa) Trong quan hệ LOP, Makhoa là khóa ngoại 08/02/2017 Chương 5. Cơ sở dữ liệu 17 08/02/2017 Chương 5. Cơ sở dữ liệu 18 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.1.4. HỆ CƠ SỞ DỮ LIỆU 5.1.5. LỢI ÍCH CỦA HỆ CƠ SỞ DỮ LIỆU • Tổ chức dữ liệu theo hướng tiếp cận hệ tập tin • Là một hệ thống gồm 4 thành phần: - Cơsởdữliệu - Người sử dụng CSDL: những người có quyền truy nhập hợp pháp vào CSDL (người dùng cuối, người viết chương trình ứng dụng, người quản trị CSDL) - Hệ quảntrị CSDL - Phần cứng: các thiết bị nhớ thứ cấp được sử dụng để lưu trữ CSDL 08/02/2017 Chương 5. Cơ sở dữ liệu 19 08/02/2017 Chương 5. Cơ sở dữ liệu 20 5
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.1.5. LỢI ÍCH CỦA HỆ CƠ SỞ DỮ LIỆU 5.1.5. LỢI ÍCH CỦA HỆ CƠ SỞ DỮ LIỆU • Tổ chức dữ liệu dưới dạng CSDL dùng chung • Hạn chế của hướng tiếp cận hệ tập tin - Dữ liệu được lưu trữ dư thừa và không nhất quán - Khó khăn khi truy xuất, chia sẻ dữ liệu - Khó bảo mật - 08/02/2017 Chương 5. Cơ sở dữ liệu 21 08/02/2017 Chương 5. Cơ sở dữ liệu 22 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.1.5. LỢI ÍCH CỦA HỆ CƠ SỞ DỮ LIỆU 5.2. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • Giảm bớt dư thừa dữ liệu trong lưu trữ 5.2.1. Khái niệm • Tránh được sự không nhất quán trong lưu trữ dữ liệu 5.2.2. Chức năng của Hệ QTCSDL và bảo đảm được tính toàn vẹn của dữ liệu 5.2.3. Phân loại Hệ QTCSDL • Có thể triển khai đồng thời nhiều ứng dụng trên cùng một CSDL • Thống nhất các tiêu chuẩn, thủ tục và các biện pháp bảo vệ, an toàn dữ liệu Cho phép tổ chức, quản lý dữ liệu một cách hiệu quả 08/02/2017 Chương 5. Cơ sở dữ liệu 23 08/02/2017 Chương 5. Cơ sở dữ liệu 24 6
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.2.1. KHÁI NIỆM 5.2.2. CHỨC NĂNG CỦA HỆ QUẢN TRỊ CSDL • Hệ quản trị cơ sở dữ liệu (Database Management • Cung cấp môi trường tạo lập cơ sở dữ liệu System - DBMS): là phần mềm được thiết kế cho • Cung cấp môi trường cập nhật và khai thác dữ liệu phép tạo lập, lưu trữ và khai thác thông tin của CSDL - Cập nhật: thêm, xóa, sửa dữ liệu một cách thuận lợi - Khai thác: sắp xếp, tìm kiếm, kết xuất báo cáo, • Cung cấp công cụ kiểm soát, điều khiển việc truy > Hệ QTCSDL cung cấp môi trường thuận lợi, đơn cập vào CSDL: giản và hiệu quả để người sử dụng có thể tạo lập, lưu - Phát hiện và ngăn chặn các truy cập trái phép trữ và thao tác trên CSDL mà không cần quan tâm - Duy trì tính nhất quán của dữ liệu nhiều đến thuật toán chi tiết và cách biểu diễn dữ liệu - Tổ chức, điều khiển các truy cập đồng thời trong bộ nhớ - Khôi phục CSDL khi gặp sự cố - Quản lý các mô tả dữ liệu 08/02/2017 Chương 5. Cơ sở dữ liệu 25 08/02/2017 Chương 5. Cơ sở dữ liệu 26 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.2.3. PHÂN LOẠI HỆ QUẢN TRỊ CSDL 5.2.3. PHÂN LOẠI HỆ QUẢN TRỊ CSDL • Chia thành 3 loại: • Một số hệ quản trị CSDL phổ biến: - XML DBMS (eXtensible Markup Language - DB2 Database Management System): phù hợp cho dữ liệu - Microsoft SQL Server đã được định dạng XML - Microsoft Access - ODBMS (Object Database Management System): - MySQL phù hợp cho mô hình CSDL hướng đối tượng - SQLite - RDBMS (Relational Database Management System): phù hợp cho mô hình CSDL quan hệ 08/02/2017 Chương 5. Cơ sở dữ liệu 27 08/02/2017 Chương 5. Cơ sở dữ liệu 28 7
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.3. NGÔN NGỮ TRUY VẤN SQL 5.3. NGÔN NGỮ TRUY VẤN SQL • Các thành phần chính của ngôn ngữ SQL: • SQL – Structured Query Language: là ngôn ngữ truy - Ngôn ngữ định nghĩa dữ liệu (Data Definition Language – vấn dựa trên đại số quan hệ DDL): cung cấp các câu lệnh cho phép định nghĩa các • Được xem như một ngôn ngữ chuẩn cho phép người lược đồ quan hệ, các ràng buộc toàn vẹn dữ liệu, cho phép dùng giao tiếp với CSDL sửa, xóa cấu trúc các quan hệ • Cho phép thực thi các thao tác với CSDL: tạo, thêm, - Ngôn ngữ thao tác dữ liệu (Data Manipullation xóa, sửa, truy vấn Language-DML): cho phép khai thác CSDL với các thao tác tìm kiếm, trích rút, tổng hợp, thêm, sửa, xóa dữ liệu - Ngôn ngữ kiểm soát (quản lý) dữ liệu (Data Control Language-DCL): bao gồm các câu lệnh đảm bảo tính an toàn và toàn vẹn dữ liệu, cấp phát quyền truy cập vào dữ liệu 08/02/2017 Chương 5. Cơ sở dữ liệu 29 08/02/2017 Chương 5. Cơ sở dữ liệu 30 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5.3.1. CÂU LỆNH TRUY VẤN DỮ LIỆU 1. Cú pháp tổng quát 1. Cú pháp tổng quát SELECT 2. Dạng đơn giản FROM 3. Dấu* WHERE 4. Mệnh đề WHERE GROUP BY 5. Truy vấn từ nhiều Bảng HAVING 6. Mệnh đề ORDER BY ORDER BY 7. Mệnh đề GROUP BY 8. Mệnh đề HAVING 9. Phát biểu Select với AS 10. Phát biểu Select với DISTINCT 11. Truy vấn con 08/02/2017 Chương 5. Cơ sở dữ liệu 31 08/02/2017 Chương 5. Cơ sở dữ liệu 32 8
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 2. Dạng đơn giản 3. Dấu * • Cú pháp: • Dấu * đại diện cho tất cả các cột SELECT SELECT * FROM FROM Lấy ra một số cột trong một bảng nào đó • Ví dụ: Lấy ra danh sách các khoa • Ví dụ: Lấy ra mã sinh viên, họ đệm và tên của các SELECT * sinh viên trong bảng SINHVIEN FROM KHOA; SELECT MaSV, Hodem, Ten FROM SINHVIEN; 08/02/2017 Chương 5. Cơ sở dữ liệu 33 08/02/2017 Chương 5. Cơ sở dữ liệu 34 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 4. Mệnh đề WHERE 4. Mệnh đề WHERE • Dùng để đặt điều kiện lấy dữ liệu • Các phép toán trong mệnh đề WHERE: SELECT - So sánh: >, =, FROM - Logic: And, Or, Not WHERE • Ví dụ: lấy ra mã sinh viên, họ đệm và tên của các sinh Ví dụ: lấy ra mã sinh viên, họ đệm và tên của các sinh viên nữ học lớp K57CNSHA viên nữ SELECT MaSV, Hodem, Ten SELECT MaSV, Hodem, Ten FROM SINHVIEN WHERE Gioitinh = "Nữ" and MaLop = FROM SINHVIEN "K57CNSHA"; WHERE Gioitinh = "Nữ"; 08/02/2017 Chương 5. Cơ sở dữ liệu 35 08/02/2017 Chương 5. Cơ sở dữ liệu 36 9
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 4. Mệnh đề WHERE 4. Mệnh đề WHERE • Toán tử BETWEEN AND • Toán tử [NOT] LIKE: tìm một mẫu ký tự • Ví dụ: Lấy ra danh sách các kết quả môn học có điểm • Sử dụng với các ký tự đại diện: ? (1 ký tự bất kỳ), * (1 nằm trong đoạn [5,7] chuỗi ký tự bất kỳ) SELECT * • Ví dụ: lấy ra danh sách Sinh viên Họ "Nguyễn" FROM KETQUA SELECT * WHERE Diem between 5 and 7; FROM SINHVIEN WHERE Hodem LIKE "Nguyễn*"; 08/02/2017 Chương 5. Cơ sở dữ liệu 37 08/02/2017 Chương 5. Cơ sở dữ liệu 38 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 4. Mệnh đề WHERE 5. Truy vấn từ nhiều bảng • Toán tử [NOT] IN: phép toán so sánh trong 1 tập hợp, • Khi thông tin cần lấy ra có từ nhiều bảng khác nhau, 1 danh sách cần thực hiện truy vấn từ nhiều bảng SELECT • Ví dụ: Lấy ra thông tin của các lớp thuộc khoa công FROM nghệ thông tin, nông học và chăn nuôi thú y WHERE SELECT* • Lưu ý: FROM LOP - Cần liên kết các bảng lại với nhau WHERE MaKhoa IN ("CNSH", "CNTT", "TY"); - Các tên cột cùng có ở nhiều bảng cần ghi rõ theo dạng [Tên Bảng].[Tên cột] - Có thể sử dụng các mệnh đề liên kết inner/left/right join để thay thế 08/02/2017 Chương 5. Cơ sở dữ liệu 39 08/02/2017 Chương 5. Cơ sở dữ liệu 40 10
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 5. Truy vấn từ nhiều bảng 6. Mệnh đề ORDER BY • Ví dụ: Hiển thị thông tin về các sinh viên với các kết • Sắp xếp kết quả theo thứ tự mong muốn quả học tập của họ. Thông tin hiển thị cần (mã sinh ORDER BY [ASC | DESC] viên, họ tên, ngày sinh, giới tính, tên môn học, điểm): • Ví dụ: Lấy ra các sinh viên nữ học lớp K57CNSHA, SELECT SINHVIEN.MaSV, Hodem, Ten, Ngaysinh, được sắp xếp theo vần alphabet của họ đệm và tên Gioitinh, TenMH, Diem SELECT MaSV, Hodem, Ten FROM SINHVIEN, KETQUA, MONHOC FROM SINHVIEN WHERE SINHVIEN.MaSV = KETQUA.MaSV WHERE Gioitinh = "Nữ" and MaLop = AND KETQUA.MaMH = MONHOC.MaMH; "K57CNSHA" ORDER BY Ten, Hodem; 08/02/2017 Chương 5. Cơ sở dữ liệu 41 08/02/2017 Chương 5. Cơ sở dữ liệu 42 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 7. Mệnh đề GROUP BY 7. Mệnh đề GROUP BY • Nhóm dữ liệu lại theo từng nhóm để thực hiện các • Một số hàm thông dụng: phép toán thống kê - SUM: Tổng các phần tử GROUP BY - AVG: giá trị trung bình • Ví dụ: In ra danh sách các lớp và số sinh viên trong - MAX: giá trị lớn nhất mỗi lớp từ bảng SinhVien - MIN: giá trị nhỏ nhất SELECT SINHVIEN.MaLop, TenLop, - COUNT: đếm số phần tử COUNT(SINHVIEN.MaSV) AS Sosinhvien FROM SINHVIEN, LOP WHERE SINHVIEN.MaLop = LOP.MaLop GROUP BY SINHVIEN.MaLop, LOP.TenLop; 08/02/2017 Chương 5. Cơ sở dữ liệu 43 08/02/2017 Chương 5. Cơ sở dữ liệu 44 11
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 8. Mệnh đề HAVING 9. Phát biểu Select với AS • Đặt điều kiện chọn sau khi đã nhóm dữ liệu bằng • Đặt lại tên trường khi hiển thị kết quả mệnh đề GROUP BY • Ví dụ: Hiển thị thông tin về các sinh viên với các kết • Ví dụ: In ra danh sách các lớp có số sinh viên > 2 từ quả học tập của họ. Khi hiển thị cột Diem đổi tên bảng SINHVIEN thành cột DiemTB SELECT SINHVIEN.MaLop, TenLop, SELECT SINHVIEN.MaSV, Hodem, Ten, Ngaysinh, COUNT(SINHVIEN.MaSV) AS Sosinhvien Gioitinh, TenMH, Diem as DiemTB FROM SINHVIEN, LOP FROM SINHVIEN, KETQUA, MONHOC WHERE SINHVIEN.MaLop = LOP.MaLop WHERE SINHVIEN.MaSV = KETQUA.MaSV GROUP BY SINHVIEN.MaLop, TenLop AND KETQUA.MaMH = MONHOC.MaMH; HAVING COUNT(SINHVIEN.MaSV)>2 08/02/2017 Chương 5. Cơ sở dữ liệu 45 08/02/2017 Chương 5. Cơ sở dữ liệu 46 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 10. Phát biểu Select với DISTINCT 11. Truy vấn con • Nếu kết quả truy vấn có nhiều bản ghi trùng nhau, để • Đôi khi ta cần sử dụng kết quả của 1 câu truy vấn để chỉ lấy 1 mẫu tin ta dùng DISTINCT làm điều kiện cho 1 câu truy vấn khác, khi đó ta gọi • Ví dụ: In ra danh sách các lớp trong bảng SINHVIEN là truy vấn con SELECT DISTINCT MALOP • Khi thực hiện, truy vấn con sẽ được thực hiện trước, FROM SINHVIEN; rồi lấy kết quả để thực hiện truy vấn lớn 08/02/2017 Chương 5. Cơ sở dữ liệu 47 08/02/2017 Chương 5. Cơ sở dữ liệu 48 12
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương 11. Truy vấn con 11. Truy vấn con • Dạng tổng quát: • Ví dụ: Hiển thị thông tin những sinh viên đã học và SELECT không phải học lại môn học nào FROM SELECT distinct Sinhvien.MaSV, Hodem, Ten, WHERE Ngaysinh IN ( NOT IN, =, WHERE (SINHVIEN.MaSV=KETQUA.MaSV) FROM AND SINHVIEN.MaSV not IN WHERE ) (SELECT distinct MaSV FROM KETQUA WHERE Diem ( ) • Lệnh xóa bản ghi VALUES ( ) • Ví dụ: thêm một dòng vào bảng SINHVIEN INSERT INTO SINHVIEN (MaSV, Hodem, Ten, Ngaysinh, Gioitinh, Tinh, MaLop) VALUES ("571205", "Nguyễn Tiến", "Minh", "03/08/1992", "Nam", "Hà Nội","K57CNSHA"); 08/02/2017 Chương 5. Cơ sở dữ liệu 51 08/02/2017 Chương 5. Cơ sở dữ liệu 52 13
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương Lệnh thêm bản ghi Lệnh thêm bản ghi • Nếu các giá trị sau từ khoá VALUES hoàn toàn phù • Ta có thể thêm các bản ghi vào bảng từ câu lệnh truy hợp về thứ tự với các cột trong bảng, thì danh sách vấn (Select) các cột có thể được bỏ qua INSERT INTO ( , ) • Ví dụ: thêm một dòng vào bảng SINHVIEN INSERT INTO SINHVIEN hoặc VALUES ("583495", "Nguyễn Lan", "Phương", INSERT INTO "13/10/1992", "Nữ", "Hà Nội","K58CNTTA"); 08/02/2017 Chương 5. Cơ sở dữ liệu 53 08/02/2017 Chương 5. Cơ sở dữ liệu 54 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương Lệnh thêm bản ghi Lệnh sửa bản ghi • Cú pháp: • Ví dụ: thêm tất cả các dòng trong bảng DSSV vào UPDATE bảng SINHVIEN: SET = , = , INSERT INTO SINHVIEN , = SELECT * FROM DSSV ; [WHERE ]; • Lưu ý: hai bảng DSSV và SINHVIEN phải có cấu • Ý nghĩa: trúc giống nhau - Giá trị của các cột , của những bản ghi thoả mãn điều kiện sau WHERE sẽ được sửa đổi thành , , - Nếu không có mệnh đề WHERE thì tất cả các bản ghi của bảng sẽ được sửa đổi 08/02/2017 Chương 5. Cơ sở dữ liệu 55 08/02/2017 Chương 5. Cơ sở dữ liệu 56 14
- 03/02/2018 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Bài giảng Tin học đại cương Lệnh sửa bản ghi Lệnh xóa bản ghi • Ví dụ: sửa hộ khẩu của các sinh viên từ Hà Tây thành Hà Nội • Cú pháp: UPDATE SINHVIEN DELETE FROM SET Tinh = "Hà Nội" [WHERE ]; WHERE Tinh = "Hà Tây"; • Ý nghĩa: - Các bản ghi thoả mãn điều kiện WHERE sẽ bị xoá khỏi bảng - Nếu không có mệnh đề WHERE thì tất cả các bản ghi của bảng sẽ bị xóa khỏi bảng 08/02/2017 Chương 5. Cơ sở dữ liệu 57 08/02/2017 Chương 5. Cơ sở dữ liệu 58 Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam Bài giảng Tin học đại cương Lệnh xóa bản ghi • Ví dụ: Xóa tất cả các bản ghi trong bảng DSSV: DELETE FROM DSSV; • Ví dụ: Xóa sinh viên lớp K56CNSHA khỏi bảng SINHVIEN DELETE FROM SINHVIEN WHERE MaLop = "K56CNSHA"; 08/02/2017 Chương 5. Cơ sở dữ liệu 59 15