Bài giảng Tin học đại cương - Chương 5: Cơ sở dữ liệu

03/02/2018  
Khoa Công nghệ thông tin – Học viện Nông nghiệp Việt Nam  
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.1. KHÁI NIỆM CƠ SỞ DỮ LIỆU  
5.1. CƠ SỞ DỮ LIỆU  
• Cơ sở dữ liệu (database): là một tập hợp các dữ liệu có  
liên quan với nhau, chứa thông tin về một tổ chức nào  
đó (như một trường đại học, một ngân hàng, một bệnh  
viện, một công ty, …) được lưu trữ trên các thiết bị nhớ  
thứ cấp (băng từ, đĩa từ, …) để đáp ứng nhu cầu khai  
thác thông tin của nhiều người sử dụng với nhiều mục  
đích khác nhau  
5.1.1. Khái niệm cơ sở dữ liệu  
5.1.2. Các mức thể hiện của cơ sở dữ liệu  
5.1.3. Mô hình dữ liệu quan hệ  
5.1.4. Hệ cơ sở dữ liệu  
5.1.5. Lợi ích của hệ cơ sở dữ liệu  
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ư  
thế nào? Ở đâu? Cần các chỉ mục gì? Việc truy xuất  
như thế nào?  
• Bảng Môn học:  
• 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  
Các khái niệm trong mô hình dữ liệu quan hệ  
5.1.3. MÔ HÌNH DỮ LIỆU QUAN HỆ  
• Mô hình dữ liệu quan hệ được đề xuất bởi E.F.Codd  
vào những năm 1970 - 1972  
• Quan hệ  
• Lược đồ  
• Thuộc tính  
• Bộ  
• Khóa  
• Khóa ngoại  
• Biểu diễn mọi dữ liệu dưới dạng các bảng (quan hệ)  
Một CSDL quan hệ thường gồm nhiều bảng, mỗi  
bảng chứa dữ liệu của một tập thực thể được chia  
thành các hàng (bản ghi – record) và các cột (trường -  
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  
tượng cần được lưu trữ trong CSDL để phục vụ cho  
việc khai thác dữ liệu về đối tượng  
• Thuộc tính được đặc trưng bởi:  
- Tên gọi: thuộc tính được đặt tên theo cách gợi nhớ và  
theo quy định  
• Mỗi dòng của một quan hệ, trừ dòng tiêu đề ghi tên  
của các thuộc tính, được gọi là một bộ (bản ghi -  
record)  
• Các bộ không được trùng nhau trong một quan hệ  
- 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  
định được tính duy nhất của mỗi bộ trong quan hệ đó  
• Ví dụ:  
• Là tập gồm một hay nhiều thuộc tính không phải là  
khóa chính của lược đồ quan hệ này nhưng lại là khóa  
chính của một lược đồ quan hệ khác  
- Quan hệ Khoa(MaKhoa, TenKhoa, SoDT) chọn  
MaKhoa làm khóa chính  
• Dùng để biểu thị mối liên kết giữa quan hệ này với  
quan hệ khác trong mô hình quan hệ  
- Quan hệ Ketqua(MaSV, MaMH, Diem) cặp  
{MaSV, MaMH} làm khóa chính  
• Ví dụ:  
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ản trị 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  
và bảo đảm được tính toàn vẹn của dữ liệu  
• Có thể triển khai đồng thời nhiều ứng dụng trên cùng  
một CSDL  
5.2.2. Chức năng của Hệ QTCSDL  
5.2.3. Phân loại Hệ QTCSDL  
• 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  
• Cung cấp môi trường tạo lập cơ sở dữ liệu  
• Cung cấp môi trường cập nhật và khai thác dữ liệu  
- Cập nhật: thêm, xóa, sửa dữ liệu  
- 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  
cập vào CSDL:  
- Phát hiện và ngăn chặn các truy cập trái phép  
- Duy trì tính nhất quán của dữ liệu  
- Tổ chức, điều khiển các truy cập đồng thời  
- Khôi phục CSDL khi gặp sự cố  
• Hệ quản trị cơ sở dữ liệu (Database Management  
System - DBMS): là phần mềm được thiết kế cho  
phép tạo lập, lưu trữ và khai thác thông tin của CSDL  
một cách thuận lợi  
--> Hệ QTCSDL cung cấp môi trường thuận lợi, đơn  
giản và hiệu quả để người sử dụng có thể tạo lập, lưu  
trữ và thao tác trên CSDL mà không cần quan tâm  
nhiều đến thuật toán chi tiết và cách biểu diễn dữ liệu  
trong bộ nhớ  
- 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:  
- DB2  
- Microsoft SQL Server  
- Microsoft Access  
- MySQL  
- XML DBMS (eXtensible Markup Language  
Database Management System): phù hợp cho dữ liệu  
đã được định dạng XML  
- ODBMS (Object Database Management System):  
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  
vấn dựa trên đại số quan hệ  
• Được xem như một ngôn ngữ chuẩn cho phép người  
dùng giao tiếp với CSDL  
- Ngôn ngữ định nghĩa dữ liệu (Data Definition Language –  
DDL): cung cấp các câu lệnh cho phép định nghĩa các  
lược đồ quan hệ, các ràng buộc toàn vẹn dữ liệu, cho phép  
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,  
xóa, sửa, truy vấn  
- Ngôn ngữ thao tác dữ liệu (Data Manipullation  
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  
2. Dạng đơn giản  
3. Dấu*  
SELECT <Danh sách các cột>  
FROM <Danh sách Bảng>  
WHERE <Các điều kiện>  
4. Mệnh đề WHERE  
5. Truy vấn từ nhiều Bảng  
6. Mệnh đề 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  
GROUP BY <Tên cột>  
HAVING <Điều kiện dựa trên GROUP BY>  
ORDER BY <Danh sách cột>  
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 <Danh sách các cột>  
FROM <Tên Bảng>  
Lấy ra một số cột trong một bảng nào đó  
SELECT *  
FROM <Tên Bảng>  
• Ví dụ: Lấy ra danh sách các khoa  
SELECT *  
• Ví dụ: Lấy ra mã sinh viên, họ đệm và tên của các  
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  
SELECT <Danh sách các cột>  
FROM <TênBảng>  
• Các phép toán trong mệnh đề WHERE:  
- So sánh: >, <, >=, <=, =, <>  
- Logic: And, Or, Not  
• 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  
WHERE <Danh sách các điều kiện>  
Ví dụ: lấy ra mã sinh viên, họ đệm và tên của các sinh  
viên nữ  
SELECT MaSV, Hodem, Ten  
FROM SINHVIEN  
WHERE Gioitinh = "Nữ" and MaLop =  
"K57CNSHA";  
SELECT MaSV, Hodem, Ten  
FROM SINHVIEN  
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 <giá trị 1> AND <giá trị 2>  
• Ví dụ: Lấy ra danh sách các kết quả môn học có điểm  
nằm trong đoạn [5,7]  
• Toán tử [NOT] LIKE: tìm một mẫu ký tự  
• Sử dụng với các ký tự đại diện: ? (1 ký tự bất kỳ), * (1  
chuỗi ký tự bất kỳ)  
• Ví dụ: lấy ra danh sách Sinh viên Họ "Nguyễn"  
SELECT *  
SELECT *  
FROM KETQUA  
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  
5. Truy vấn từ nhiều bảng  
4. Mệnh đề WHERE  
• Khi thông tin cần lấy ra có từ nhiều bảng khác nhau,  
cần thực hiện truy vấn từ nhiều bảng  
SELECT <Danh sách các cột>  
FROM <Danh sách các Bảng>  
WHERE <Các điều kiện>  
• Lưu ý:  
- Cần liên kết các bảng lại với nhau  
- 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]  
• Toán tử [NOT] IN: phép toán so sánh trong 1 tập hợp,  
1 danh sách  
• Ví dụ: Lấy ra thông tin của các lớp thuộc khoa công  
nghệ thông tin, nông học và chăn nuôi thú y  
SELECT*  
FROM LOP  
WHERE MaKhoa IN ("CNSH", "CNTT", "TY");  
- 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  
quả học tập của họ. Thông tin hiển thị cần (mã sinh  
viên, họ tên, ngày sinh, giới tính, tên môn học, điểm):  
SELECT SINHVIEN.MaSV, Hodem, Ten, Ngaysinh,  
Gioitinh, TenMH, Diem  
• Sắp xếp kết quả theo thứ tự mong muốn  
ORDER BY <DS Tên cột> [ASC | DESC]  
• Ví dụ: Lấy ra các sinh viên nữ học lớp K57CNSHA,  
được sắp xếp theo vần alphabet của họ đệm và tên  
SELECT MaSV, Hodem, Ten  
FROM SINHVIEN, KETQUA, MONHOC  
WHERE SINHVIEN.MaSV = KETQUA.MaSV  
AND KETQUA.MaMH = MONHOC.MaMH;  
FROM SINHVIEN  
WHERE Gioitinh = "Nữ" and MaLop =  
"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  
phép toán thống kê  
GROUP BY <DS Tên cột>  
• Ví dụ: In ra danh sách các lớp và số sinh viên trong  
mỗi lớp từ bảng SinhVien  
• Một số hàm thông dụng:  
- SUM: Tổng các phần tử  
- AVG: giá trị trung bình  
- MAX: giá trị lớn nhất  
- MIN: giá trị nhỏ nhất  
- COUNT: đếm số phần tử  
SELECT  
SINHVIEN.MaLop,  
TenLop,  
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  
9. Phát biểu Select với AS  
8. Mệnh đề HAVING  
• Đặt lại tên trường khi hiển thị kết quả  
• Đặt điều kiện chọn sau khi đã nhóm dữ liệu bằng  
mệnh đề GROUP BY  
• Ví dụ: In ra danh sách các lớp có số sinh viên > 2 từ  
bảng SINHVIEN  
• Ví dụ: Hiển thị thông tin về các sinh viên với các kết  
quả học tập của họ. Khi hiển thị cột Diem đổi tên  
thành cột DiemTB  
SELECT SINHVIEN.MaSV, Hodem, Ten, Ngaysinh,  
Gioitinh, TenMH, Diem as DiemTB  
FROM SINHVIEN, KETQUA, MONHOC  
WHERE SINHVIEN.MaSV = KETQUA.MaSV  
AND KETQUA.MaMH = MONHOC.MaMH;  
SELECT  
SINHVIEN.MaLop,  
TenLop,  
COUNT(SINHVIEN.MaSV) AS Sosinhvien  
FROM SINHVIEN, LOP  
WHERE SINHVIEN.MaLop = LOP.MaLop  
GROUP BY SINHVIEN.MaLop, TenLop  
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, để  
chỉ lấy 1 mẫu tin ta dùng DISTINCT  
• Ví dụ: In ra danh sách các lớp trong bảng SINHVIEN  
SELECT DISTINCT MALOP  
• Đôi khi ta cần sử dụng kết quả của 1 câu truy vấn để  
làm điều kiện cho 1 câu truy vấn khác, khi đó ta gọi  
là truy vấn con  
• Khi thực hiện, truy vấn con sẽ được thực hiện trước,  
rồi lấy kết quả để thực hiện truy vấn lớn  
FROM SINHVIEN;  
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à  
không phải học lại môn học nào  
SELECT <Danh sách các cột>  
FROM <Danh sách Bảng>  
WHERE <Các điều kiện>  
SELECT distinct Sinhvien.MaSV, Hodem, Ten,  
Ngaysinh  
…<Têncột > IN ( NOT IN, =, <>, …)  
(SELECT <Danh sách các cột>  
FROM <Danh sách Bảng>  
WHERE<Các điều kiện>)  
FROM SINHVIEN, KETQUA  
WHERE  
(SINHVIEN.MaSV=KETQUA.MaSV)  
AND SINHVIEN.MaSV not IN  
(SELECT distinct MaSV  
FROM KETQUA  
WHERE Diem<4);  
08/02/2017  
Chương 5. Cơ sở dữ liệu  
49  
08/02/2017  
Chương 5. Cơ sở dữ liệu  
50  
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.2. CÂU LỆNH CẬP NHẬT DỮ LIỆU  
Lệnh thêm bản ghi  
• Cú pháp:  
• Lệnh thêm bản ghi  
• Lệnh sửa bản ghi  
• Lệnh xóa bản ghi  
INSERT INTO <tênbảng>(<danh sách các cột>)  
VALUES (<danh sách các giá trị>)  
• 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  
• Ta có thể thêm các bản ghi vào bảng từ câu lệnh truy  
• Nếu các giá trị sau từ khoá VALUES hoàn toàn phù  
hợp về thứ tự với các cột trong bảng, thì danh sách  
các cột có thể được bỏ qua  
• Ví dụ: thêm một dòng vào bảng SINHVIEN  
INSERT INTO SINHVIEN  
vấn (Select)  
INSERT INTO <tên bảng> (<tên cột 1>, ...)  
<Câu lệnh Select>  
hoặc  
INSERT INTO <tênbảng>  
<Câu lệnh Select>  
VALUES ("583495", "Nguyễn Lan", "Phương",  
"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 sửa bản ghi  
Lệnh thêm bản ghi  
• Cú pháp:  
• Ví dụ: thêm tất cả các dòng trong bảng DSSV vào  
bảng SINHVIEN:  
UPDATE <tên bảng>  
SET <tên cột 1> = <giá trị 1>, <tên cột 2> = <giá trị 2>,  
..., <tên cột n> = < giá trị n>  
INSERT INTO SINHVIEN  
SELECT * FROM DSSV ;  
[WHERE <điềukiện>];  
• Lưu ý: hai bảng DSSV và SINHVIEN phải có cấu  
trúc giống nhau  
• Ý nghĩa:  
- Giá trị của các cột <tên cột 1>, <tên cột 2> ... của  
những bản ghi thoả mãn điều kiện sau WHERE sẽ  
được sửa đổi thành <giá trị 1>, <giá trị 2>, …  
- 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:  
DELETE FROM <tên bảng>  
[WHERE <điều kiện>];  
• Ý nghĩa:  
UPDATE SINHVIEN  
SET Tinh = "Hà Nội"  
WHERE Tinh = "Hà Tây";  
- 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  
pdf 15 trang yennguyen 20360 Free
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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_chuong_5_co_so_du_lieu.pdf