Lộ trình học SQL
Học từ cơ bản đến nâng cao. Mỗi bài có lý thuyết ngắn gọn, trình mô phỏng thực thi bằng animation và khu vực thực hành chạy SQL thật.
Cơ bản
11 bàiDatabase là gì?
Hiểu database, DBMS và vì sao ta dùng SQL.
Table, row, column
Cấu trúc dữ liệu: bảng, dòng, cột, khóa chính và khóa ngoại.
SELECT cơ bản
Đọc toàn bộ dữ liệu từ một bảng với SELECT *.
SELECT cột cụ thể
Chỉ lấy những cột bạn cần và đặt tên hiển thị bằng AS.
WHERE — lọc dòng
Chỉ giữ lại các dòng thỏa điều kiện.
AND / OR — kết hợp điều kiện
Ghép nhiều điều kiện với AND, OR và NOT.
ORDER BY — sắp xếp
Sắp xếp kết quả tăng dần (ASC) hoặc giảm dần (DESC).
LIMIT — giới hạn số dòng
Lấy N dòng đầu tiên, thường kết hợp ORDER BY để lấy top N.
DISTINCT — loại trùng
Loại bỏ các dòng trùng lặp trong kết quả.
NULL, IS NULL & LIKE
Xử lý giá trị thiếu và tìm chuỗi theo mẫu.
UNION — gộp kết quả
Gộp hai SELECT thành một danh sách (loại trùng hoặc giữ hết).
Trung cấp
11 bàiINSERT — thêm dữ liệu
Thêm dòng mới vào bảng với INSERT INTO ... VALUES.
UPDATE — cập nhật dữ liệu
Sửa giá trị các dòng thỏa điều kiện với UPDATE ... SET ... WHERE.
DELETE — xóa dữ liệu
Xóa các dòng thỏa điều kiện với DELETE FROM ... WHERE.
Hàm tổng hợp: COUNT / SUM / AVG
Tính toán trên nhiều dòng: đếm, tính tổng, trung bình, min, max.
GROUP BY — gom nhóm
Nhóm các dòng theo cột rồi tính tổng hợp cho từng nhóm.
HAVING — lọc nhóm
Lọc các nhóm sau khi tổng hợp (khác với WHERE lọc dòng).
INNER JOIN — ghép bảng
Ghép dòng của hai bảng khi khóa khớp nhau.
LEFT JOIN — giữ mọi dòng bảng trái
Giữ tất cả dòng bảng trái, phần không khớp bên phải là NULL.
Subquery — truy vấn lồng
Dùng kết quả của một truy vấn bên trong truy vấn khác.
JOIN nhiều bảng
Nối users → orders → (qua user) theo chuỗi JOIN.
EXISTS & CASE
EXISTS kiểm tra tồn tại; CASE rẽ nhánh trong SELECT.
Nâng cao
9 bàiIndex — chỉ mục tăng tốc
So sánh full table scan với index lookup.
Transaction — COMMIT / ROLLBACK
Nhóm nhiều lệnh thành một đơn vị 'tất cả hoặc không gì cả'.
CTE — WITH ... AS
Đặt tên cho truy vấn con để câu lệnh dễ đọc, tái sử dụng.
Window function — ROW_NUMBER
Đánh số / xếp hạng trong từng nhóm mà không gộp dòng.
View — bảng ảo
Lưu một truy vấn dưới dạng bảng ảo tái sử dụng được.
Thứ tự thực thi câu lệnh
SQL viết theo một thứ tự nhưng chạy theo thứ tự khác.
Chuẩn hóa (Normalization)
Tổ chức bảng để giảm trùng lặp và bất thường dữ liệu.
Hiệu năng truy vấn — cơ bản
Mẹo nền tảng để truy vấn nhanh hơn.
SQL Injection — an toàn cơ bản
Vì sao ghép chuỗi vào câu lệnh là nguy hiểm, và cách phòng tránh.