1. Em đang học gì trong chủ đề CSDL & SQL?
Chủ đề này không yêu cầu em trở thành “lập trình viên chuyên nghiệp”, mà chỉ cần biết:
- Hiểu một bài toán quản lí trong đời sống (quản lí học sinh, thư viện, âm nhạc,…).
- Biến bài toán đó thành các bảng trong CSDL.
- Dùng câu lệnh SQL để hỏi – thêm – sửa – xoá dữ liệu.
– “Hãy cho tôi danh sách học sinh lớp 11A1.”
– “Hãy thêm một bạn mới vào lớp.”
– “Hãy xoá những bản ghi không còn dùng nữa.”
2. 5 bước tìm hiểu một bài toán quản lí
Mỗi khi gặp bài toán quản lí (quản lí thư viện, âm nhạc, học sinh,…), em cứ đi theo đúng 5 bước này:
| Bước | Em làm gì? | Câu hỏi gợi ý cho em |
|---|---|---|
| 1. Đọc đề & gạch chân từ khóa | Đọc chậm đề bài, gạch chân các từ chỉ đối tượng cần quản lí. | Đề bài đang muốn quản lí cái gì? (sách, học sinh, bản nhạc, hoá đơn,…) |
| 2. Xác định thực thể (bảng) | Liệt kê các “nhóm đối tượng chính”, mỗi nhóm sau này sẽ thành 1 bảng. | Có những nhóm đối tượng nào? (Ví dụ: Sách, Bạn đọc, Phiếu mượn,…) |
| 3. Chọn thuộc tính & khóa chính | Với mỗi thực thể, em chọn các thông tin cần lưu (trường) và khóa chính. | Mỗi đối tượng cần lưu những thông tin gì? Trường nào phân biệt từng bản ghi? |
| 4. Nhìn mối quan hệ giữa các bảng | Xem các thực thể liên quan với nhau như thế nào (1–N, N–N,…). | Bảng nào “gắn” với bảng nào? Một đối tượng ở đây liên quan tới mấy đối tượng ở kia? |
| 5. Nghĩ ra các câu hỏi cần SQL trả lời | Ghi ra các câu hỏi dạng tự nhiên – sau này ta sẽ viết SELECT, INSERT,… | Cần liệt kê, tìm kiếm, thống kê những gì từ CSDL? |
3. Áp dụng 5 bước cho bài toán âm nhạc
SGK (trang 70–71) cho bài toán quản lí lĩnh vực âm nhạc. Ta áp dụng 5 bước như sau:
3.1. Bước 1 & 2 – Đối tượng cần quản lí
Mô tả tóm tắt: cần quản lí thông tin về nhạc sĩ, ca sĩ, bản nhạc.
| Thực thể (bảng) | Ý nghĩa | Một số thuộc tính cần lưu |
|---|---|---|
nhacsi |
Thông tin từng nhạc sĩ. | Mã nhạc sĩ, họ tên, năm sinh, quê quán,… |
casi |
Thông tin từng ca sĩ. | Mã ca sĩ, họ tên, năm sinh, quê quán,… |
bannhac |
Mỗi bản nhạc (bài hát) cụ thể. | Mã bản nhạc, tên bài hát, mã nhạc sĩ, mã ca sĩ thể hiện,… |
3.2. Bước 3 – Khóa chính, khóa ngoại
| Bảng | Khóa chính | Khóa ngoại (gợi ý) |
|---|---|---|
nhacsi |
Aid – mã nhạc sĩ |
– |
casi |
Sid – mã ca sĩ |
– |
bannhac |
Bid – mã bản nhạc |
Aid (tham chiếu nhacsi), Sid (tham chiếu casi) |
3.3. Bước 4 – Một số dữ liệu mẫu
Khi dạy – học, em chỉ cần vài dòng dữ liệu mẫu để nhìn rõ hơn:
| Bảng | Một vài dòng ví dụ |
|---|---|
nhacsi |
Aid='A01', Hoten='Văn Cao', Namsinh=1923, Quequan='Hải Phòng' Aid='A02', Hoten='Trịnh Công Sơn', Namsinh=1939, Quequan='Thừa Thiên Huế' |
casi |
Sid='S01', Hoten='Ca sĩ 1', Namsinh=2004, Quequan='Phú Yên' Sid='S02', Hoten='Ca sĩ 2', Namsinh=2003, Quequan='Hà Nội' |
bannhac |
Bid='B01', Tenbai='Tiến quân ca', Aid='A01', Sid='S01' Bid='B02', Tenbai='Bài hát X', Aid='A02', Sid='S02' |
3.4. Bước 5 – Câu hỏi cần SQL trả lời
Cuối cùng, em ghi ra các câu hỏi:
- Liệt kê tất cả các bản nhạc trong CSDL.
- Các bản nhạc do nhạc sĩ có Aid = 'A01' sáng tác là những bài nào?
- Những ca sĩ sinh sau năm 2000 là ai?
Chính các câu hỏi trên sẽ dẫn tới các câu lệnh SELECT, JOIN,… ở phần sau.
4. Những lệnh SQL “xương sống” của bài 14
Sau khi hiểu bài toán (5 bước ở trên), em mới bắt đầu dùng SQL. Dưới đây là 4 nhóm lệnh em cần nắm trước:
SELECTTruy xuất (xem) dữ liệu
Dùng khi em muốn “hỏi” CSDL.
Ví dụ: “Liệt kê tất cả ca sĩ”, “Tìm các bản nhạc của A01”.
INSERTThêm dữ liệu
Dùng khi có đối tượng mới (ca sĩ mới, bản nhạc mới,…).
Lưu ý: không được trùng khóa chính.
UPDATESửa dữ liệu
Dùng khi em muốn chỉnh sửa một vài trường.
Luôn kèm WHERE để tránh sửa nhầm cả bảng.
DELETEXoá dữ liệu
Dùng khi một số bản ghi không còn dùng nữa.
Quên WHERE là có thể xoá sạch bảng.
JOINNối bảng
Khi dữ liệu nằm ở nhiều bảng (nhạc sĩ – ca sĩ – bản nhạc), em cần JOIN để xem chung.
GROUP BYNhóm & thống kê
Dùng để đếm, thống kê: số bản nhạc của mỗi nhạc sĩ,…
| Lệnh | Dùng khi… | Ví dụ ngắn |
|---|---|---|
SELECT |
Em muốn “xem” dữ liệu. | SELECT * FROM casi; |
INSERT |
Thêm một ca sĩ mới. | INSERT INTO casi (...) VALUES (...); |
UPDATE |
Sửa thông tin đã lưu. | UPDATE casi SET Quequan='Hà Nội' WHERE Sid='S001'; |
DELETE |
Xoá bản ghi không cần nữa. | DELETE FROM casi WHERE Sid='S001'; |
Ví dụ: thao tác với bảng casi
-- Lấy tất cả ca sĩ
SELECT *
FROM casi;
-- Thêm một ca sĩ mới
INSERT INTO casi (Sid, Hoten, Namsinh, Quequan)
VALUES ('S001', 'Trần Minh An', 2004, 'Phú Yên');
-- Đổi quê quán ca sĩ S001
UPDATE casi
SET Quequan = 'Hà Nội'
WHERE Sid = 'S001';
-- Xoá ca sĩ S001
DELETE FROM casi
WHERE Sid = 'S001';
5. Áp dụng vào các dự án
Em có thể dùng cùng một quy trình 5 bước để áp dụng nhiều bài toán quản lí khác:
📚 Quản lí thư viện
Bước 1–5 với Sách, Bạn đọc, Phiếu mượn. Luyện SELECT, JOIN, GROUP BY gần với SGK.
Vào hệ thống
💻 Linh kiện máy tính
Quản lí sản phẩm, đơn hàng, khách hàng – phù hợp định hướng tin học ứng dụng.
Vào hệ thống
☕ Quán cà phê
Quản lí bàn, món, hoá đơn, nhân viên – luyện 4 lệnh INSERT/SELECT/UPDATE/DELETE.
Vào hệ thống6. Trợ lý AI TranSuyen – Hỏi về 5 bước & câu lệnh SQL
Trợ lý AI – Bài toán quản lí & SQL lớp 11
– “Bài toán quản lí thư viện, giúp em làm Bước 2: xác định bảng.”
– “Bài toán âm nhạc SGK, gợi ý cho em một câu SELECT liệt kê các bản nhạc của A01.”
– “Bài toán quản lí lớp học, gợi ý cấu trúc bảng học_sinh.”
7. Tài liệu PDF – Bài toán quản lí & SQL
GV và HS có thể xem thêm tài liệu PDF sau để tham khảo thêm các ví dụ bài toán quản lí: