Đăng nhập

Bài 23: Mini Project – Hệ thống quản lý đơn hàng

Mục tiêu:

  • Ứng dụng toàn bộ kiến thức SQL đã học để xây dựng một hệ thống đơn giản quản lý đơn hàng.
  • Thực hành với các truy vấn JOIN, GROUP BY, HÀM TỔNG HỢP, và LỌC DỮ LIỆU thực tế.

Mô tả bài toán

Chúng ta sẽ xây dựng một hệ thống đơn giản để quản lý đơn hàng của một cửa hàng.

Cấu trúc dữ liệu:

Bảng customers – Danh sách khách hàng

idnameemail
1Nguyễn Văn Aa@gmail.com
2Trần Thị Bb@gmail.com

Bảng products – Danh sách sản phẩm

idnameprice
1Áo thun trắng100
2Quần jeans250
3Giày thể thao500

Bảng orders – Đơn hàng

idcustomer_idorder_date
112024-01-10
222024-01-15
312024-02-05

Bảng order_details – Chi tiết từng đơn hàng

idorder_idproduct_idquantity
1112
2121
3231
4322
5331

Thực hành

1. Lấy danh sách đơn hàng kèm theo tên khách hàng

SELECT orders.id AS order_id, customers.name AS customer_name, orders.order_date
FROM orders
JOIN customers ON orders.customer_id = customers.id;

2. Lấy danh sách sản phẩm trong từng đơn hàng

SELECT orders.id AS order_id, products.name AS product_name, order_details.quantity
FROM orders
JOIN order_details ON orders.id = order_details.order_id
JOIN products ON order_details.product_id = products.id;

3. Tính tổng tiền của từng đơn hàng

SELECT 
  orders.id AS order_id,
  SUM(products.price * order_details.quantity) AS total_amount
FROM orders
JOIN order_details ON orders.id = order_details.order_id
JOIN products ON order_details.product_id = products.id
GROUP BY orders.id;

4. Lấy danh sách khách hàng và tổng số tiền đã chi tiêu

SELECT 
  customers.name,
  SUM(products.price * order_details.quantity) AS total_spent
FROM customers
JOIN orders ON customers.id = orders.customer_id
JOIN order_details ON orders.id = order_details.order_id
JOIN products ON order_details.product_id = products.id
GROUP BY customers.name;

5. Tìm sản phẩm bán chạy nhất

SELECT 
  products.name,
  SUM(order_details.quantity) AS total_sold
FROM products
JOIN order_details ON products.id = order_details.product_id
GROUP BY products.name
ORDER BY total_sold DESC
LIMIT 1;

Tự đánh giá sau bài học

Kỹ năngĐã nắm rõCần ôn thêm
JOIN nhiều bảng
Dùng GROUP BY và hàm tổng hợp
Lọc dữ liệu, sắp xếp
Truy vấn có tính toán

Kết thúc Chương 3: Truy vấn nhiều bảng

Xin chúc mừng bạn đã hoàn thành một chương rất quan trọng! Bạn đã:

  • Biết cách JOIN nhiều bảng.
  • Biết cách gom nhóm, tính tổng, và phân tích dữ liệu.
  • Hiểu cách áp dụng SQL để giải quyết một bài toán thực tế.

Giới thiệu chương 4

Trong chương tiếp theo, chúng ta sẽ học Thiết kế và Tối ưu cơ sở dữ liệu – bạn sẽ biết cách xây dựng CSDL chuẩn, sửa cấu trúc bảng, dùng index để tăng tốc hệ thống và thiết kế một hệ thống Blog đơn giản.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.