42 điểm bởi civilian 2026-04-05 | 7 bình luận | Chia sẻ qua WhatsApp

SQL, phải học bằng dữ liệu thực thì mới giỏi lên được

Có rất nhiều tài liệu hướng dẫn SQL. Nhưng đa số chỉ dừng lại ở ví dụ với 3 bảng employees.

Trong công việc thực tế, mọi thứ không như vậy. Bạn sẽ phải đối mặt với 21 bảng được liên kết bằng khóa ngoại, phải truy xuất xu hướng doanh thu theo tháng từ dữ liệu đơn hàng của 10 năm, và phải tìm ra những khách hàng có nguy cơ rời bỏ.

Vì thế nên dự án này đã được tạo ra.

Quảng cáo

https://github.com/civilian7/sql-tutorial — học SQL với cơ sở dữ liệu thương mại điện tử sát với thực tế

Mô phỏng dữ liệu của một cửa hàng máy tính trong 10 năm:

  • 21 bảng, 18 view, 5 trigger — schema ở mức thực tế công việc
  • 230 nghìn đến 10 triệu dòng — trình tạo dữ liệu cho phép chọn quy mô
  • 21 bài học — từ SELECT đến window function, recursive CTE, trigger
  • 111 bài tập thực hành — 45 bài cơ bản, 36 bài trung cấp, 30 bài nâng cao
  • Hỗ trợ đầy đủ tiếng Hàn/tiếng Anh — cả dữ liệu lẫn tài liệu đều song ngữ
  • So sánh các phương ngữ DB — SQLite, MySQL, PostgreSQL, SQL Server, Oracle
Quảng cáo

Dữ liệu rất thực tế. Doanh thu tăng vào Black Friday, đơn hàng giảm vào mùa hè, và 20% khách hàng hàng đầu chiếm 60% doanh thu.
Cũng có 25% khách hàng chỉ đăng ký mà không đặt hàng.

pip install -r requirements.txt
python generate.py --size small
# tạo output/tutorial.db (SQLite, ~29MB)

Đây là dự án do một lập trình viên không phải chuyên gia SQL tạo ra. Nếu có chỗ nào chưa đúng hoặc có cách làm tốt hơn, hãy cho biết qua Issues/PR.

GitHub: https://github.com/civilian7/sql-tutorial

7 bình luận

 
civilian 2026-04-10

Đã ra mắt phiên bản 2.0 với nhiều tính năng được nâng cấp đáng kể

 
bbulbum 2026-04-08

Đây là một dự án tuyệt vời.

 
huiya 2026-04-08

Ồ, tuyệt quá

 
sygys10293 2026-04-08

Tôi để lại bình luận vì đang dùng nó rất hiệu quả, chỉ là hiện tại dường như mới chỉ có tùy chọn output là sqlite. Tôi đang chờ postgresql.
Cảm ơn vì đã tạo ra một công cụ rất tuyệt vời

 
mbh023 2026-04-07

Tốt lắm

 
jhk0530 2026-04-05

Vui lòng đưa lên show~

 
civilian 2026-04-05

Đây là thứ tôi bắt đầu làm để cung cấp làm mẫu mặc định cho trình duyệt truy vấn mà tôi đang phát triển.
Phần mã và tài liệu do AI (Claude) thực hiện.