Tạo bởi Trắc Nghiệm Việt|
SQL Server/MySQL

BÀI TẬP SQL – HỆ THỐNG QUẢN LÝ BÁN HÀNG

1. Mô tả hệ thống

Công ty cần xây dựng hệ thống quản lý bán hàng gồm các chức năng:

  • Quản lý sản phẩm (Product)danh mục (Category)

  • Quản lý đơn hàng (Order)chi tiết đơn hàng (OrderDetail)

  • Quản lý phản hồi khách hàng (Feedback) cho từng đơn hàng


2. Yêu cầu chi tiết

A. Tạo cơ sở dữ liệu và bảng

Tạo CSDL với tên: sales

  1. Danh mục (Category)

    • id (int, tự tăng)

    • name (varchar, tên danh mục)

    • description (varchar)

  2. Sản phẩm (Product)

    • id (int, tự tăng)

    • category_id (int)

    • name (varchar)

    • price (float)

    • stock (int)

  3. Đơn hàng (Orders)

    • id (int, tự tăng)

    • order_date (date)

    • customer_name (varchar)

    • customer_phone (varchar)

  4. Chi tiết đơn hàng (OrderDetail)

    • id (int, tự tăng)

    • order_id (int)

    • product_id (int)

    • quantity (int)

    • unit_price (float)

  5. Phản hồi (Feedback)

    • id (int, tự tăng)

    • order_id (int)

    • content (varchar)

    • rating (int: 1–5)

Lưu ý: Khi CREATE TABLE chưa tạo primary key, foreign key.


B. ALTER TABLE – Ràng buộc

  1. Thêm PRIMARY KEY cho tất cả các bảng.

  2. Thêm FOREIGN KEY:

    • product.category_id tham chiếu category.id

    • orderdetail.order_id tham chiếu orders.id

    • orderdetail.product_id tham chiếu product.id

    • feedback.order_id tham chiếu orders.id


C. INDEX

  • Tạo index cho cột name trong bảng product để tối ưu tìm kiếm sản phẩm.


D. Thao tác dữ liệu

  1. INSERT: Thêm ít nhất 5 bản ghi cho mỗi bảng.

  2. UPDATE:

    • Cập nhật giá sản phẩm.

    • Cập nhật thông tin khách hàng trong đơn hàng.

  3. DELETE:

    • Xóa 1 chi tiết đơn hàng.


E. SELECT – Truy vấn dữ liệu

  1. Liệt kê danh sách sản phẩm kèm tên danh mục.

  2. Tính tổng số lượng và tổng tiền của mỗi đơn hàng.

  3. Liệt kê tất cả đơn hàng có đánh giá (feedback) với rating ≥ 4.

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


F. VIEW

  • Tạo View hiển thị doanh thu chi tiết:

    • order_id, customer_name, tổng số sản phẩm, tổng tiền.


G. Stored Procedure

  1. Viết procedure để:

    • Tìm tất cả sản phẩm theo category_id.

    • Tìm thông tin chi tiết đơn hàng theo order_id.


H. Trigger

  1. AFTER INSERT: Khi thêm chi tiết đơn hàng → giảm số lượng tồn kho của sản phẩm.

  2. AFTER UPDATE: Nếu cập nhật số lượng trong chi tiết đơn hàng → cập nhật lại tồn kho.

  3. AFTER DELETE: Nếu xóa chi tiết đơn hàng → hoàn lại số lượng tồn kho cho sản phẩm.

  4. INSTEAD OF DELETE trên bảng Orders: Khi xóa đơn hàng thì không xóa thật, mà chỉ ghi log vào bảng Orders_Log (cần tạo bảng log gồm order_id, deleted_date, reason).



Phản hồi từ học viên

5

Tổng 0 đánh giá

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó