Mục Lục
Mục Lục
Kiến Thức Core SQL Server QUẢN LÝ KHÁCH SẠN - KHÓA HỌC SQL SERVER Video Hướng dẫn cách xác định kiểu dữ liệu, primary key, foreign key trong SQL - My SQL - SQL Server Bài tập - Thiết kế CSDL - Tạo bảng, thêm dữ liêu, hiển thị dữ liệu - Lập trình SQL Server Video Hướng dẫn thao tác nhiểu bảng - select - multi table - join, inner join trong SQL Server Thiết kế database - bãi đỗ xe - Lập trình SQL Server Video Hướng dẫn phân tích CSDL - phân tích bảng, column trong bản - Học lập trình SQL, SQL Server Video Hướng dẫn tìm hiểu create, alter , insert table và bản chất primary key, foreign key - SQL Server Video Hướng dẫn tìm hiểu select, and, in, like, not in,group by .. having, order by asc, desc - SQL Server Thiết kế hệ quản trị CSDL - Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server Video Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server Thiết kế CSDL quản lý sinh viên - lập trình sql server SQL - Thiết kế CSDL quản lý bán hàng - Lập trình SQL Server Thiết kế CSDL quản lý bán hàng - create - alter - insert - update - delete trong CSDL - Học lập trình SQL Server Quản lý khách sạn - nâng cao - Lập trình Sql Server QUẢN LÝ SINH VIÊN (CƠ BẢN) - KHOÁ HỌC SQL SERVER QUẢN LÝ KHÁCH SẠN - KHOÁ HỌC SQL SERVER Quản lý sách - Khóa học lập trình SQL Server QUẢN LÝ THƯ VIỆN - KHOÁ HỌC SQL SERVER View SQL Server Video Hướng dẫn tìm hiểu view trong SQL Server Bài Giảng: Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server Thiết kế CSDL quản lý sinh viên - nâng cao - phân 2 - lập trình sql server Bài tập - Thiết kế CSDL - sử dụng trong giải đấu bóng đá FIFA - champions league - world cup - Lập trình SQL Server QUẢN LÝ NGÂN HÀNG - KHOÁ HỌC LẬP TRÌNH SQL SERVER Store & Procedure Video Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL Bài tập - Quản lý bãi đỗ xe - Lập trình SQL Server Bài tập - Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server Bài Giảng: Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server Bài tập - Thiết kế CSDL quản lý sở thú - SQL Server Bài Giảng: Bài tập - Thiết kế CSDL quản lý sở thú - SQL Server Bài tập - Chương trình quản lý bán hàng - Lập trình SQL Server Xây dựng CSDL quản lý điểm danh Trường Học - Lập trình SQL Server/MySQL Video Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL Bài tập - Quản lý quán cafe - Lập trình SQL Server - MySQL Video Bài tập - Quản lý quán cafe - Lập trình SQL Server - MySQL Trigger Video Học Trigger qua ví dụ - quản lý nhà trên phố - Lập trình SQL Server Video Hướng dẫn học trigger qua bài quản lý điểm danh Aptech - Lập trình SQL Server Video Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL Examination & Ôn Tập SQL Server [Examination] Bài Thi Thực Hành SQL Server [Examination] Quản lý sản phẩm - Lập trình SQL Server [Examination] Hệ thống quản lý sinh viên - SQL Server Thiết kế CSDL & Nghiệp vụ quản lý tour du lịch - Khóa học SQL Server Phân tích thiết kế hệ thống quản lý sinh viên - Aptech Phân tích thiết kế database quản lý thư viện - Khóa học SQL Server Phân tích hệ thống CSDL Quản Lý Khách Sạn - Khóa học SQL Server Bài tập - Viết nghiệp vụ cho quản lý khách sạn - Khóa học SQL Server Thiết kế CSDL quản lý carteen - Khóa học SQL Server BÀI TẬP SQL – HỆ THỐNG QUẢN LÝ BÁN HÀNG Product Management System Hệ thống Quản lý Sản phẩm – Bài thực hành Quản Lý Rạp Chiếu Phim - Khoá Học SQL Server Ôn Tập Thi Lý Thuyết [Examination] Ly Thuyet SQL Server 01 [Examination] Ly Thuyet SQL Server 02 [Examination] Ly Thuyet SQL Server 03 [Examination] Ly Thuyet SQL Server 04 [Examination] Ly Thuyet SQL Server 05 [Examination] Ly Thuyet SQL Server 06 [Examination] Ly Thuyet SQL Server 07 Quiz [Trắc Nghiệm] Tìm hiểu về SQL Server - Phần 1 Trắc Nghiệm Khoá SQL Server - Phần 1 Trắc Nghiệm Khoá Học SQL Server Phân 2
SQL Server/MySQL

Quản lý kho & bán hàng – SQL Server

Yêu cầu

Bạn hãy xây dựng hệ thống quản lý kho và bán hàng gồm các bảng: Khách hàng, Đơn hàng, Sản phẩm, Chi tiết đơn hàng. Thực hiện đầy đủ các yêu cầu sau.

Phần 1: Thiết kế Cơ sở dữ liệu & Tạo bảng

  1. Tạo database có tên WarehouseManagement.

  2. Tạo các bảng:

    • tblCustomer

      • CustomerID: INT NOT NULL

      • CustomerName: NVARCHAR(100)

      • Email: NVARCHAR(100)

      • BirthDate: DATE

    • tblProduct

      • ProductID: INT NOT NULL

      • ProductName: NVARCHAR(100)

      • StockQuantity: INT

      • Price: DECIMAL(10,2)

      • Description: NVARCHAR(255)

    • tblOrder

      • OrderID: INT NOT NULL

      • CustomerID: INT NOT NULL

      • OrderDate: DATETIME

    • tblOrderLine (chi tiết đơn)

      • OrderID: INT NOT NULL

      • ProductID: INT NOT NULL

      • Quantity: INT

      • UnitPrice: DECIMAL(10,2)

  3. Thiết lập:

    • Khóa chính (PRIMARY KEY) cho các bảng phù hợp.

    • Khóa ngoại (FOREIGN KEY) giữa tblOrder.CustomerIDtblCustomer.CustomerID, và tblOrderLine liên kết với tblOrder & tblProduct.

    • Ràng buộc UNIQUE cho Email trong bảng tblCustomer.

    • Ràng buộc CHECK để đảm bảo:

      • tblProduct.StockQuantity >= 0

      • tblOrder.OrderDate không được trong tương lai (<= GETDATE()).

  4. Tạo index (clustered hoặc non-clustered) nếu thấy hợp lý để tối ưu các truy vấn liên quan đến tìm sản phẩm theo tên hoặc tìm đơn hàng theo ngày.

Phần 2: Dữ liệu mẫu

Insert dữ liệu giả lập:

  • Ít nhất 6 khách hàng, với ngày sinh khác nhau.

  • Ít nhất 5 sản phẩm, với số lượng trong kho và giá khác nhau.

  • Ít nhất 7 đơn hàng, mỗi đơn có ít nhất một chi tiết đơn hàng.

  • Chi tiết đơn hàng bao gồm số lượng sản phẩm và đơn giá (có thể bằng giá sản phẩm hoặc khác nếu cần).

Phần 3: Các nghiệp vụ và truy vấn

Hãy viết các câu lệnh SQL thực hiện:

  1. Cập nhật giá sản phẩm có ProductID = 3, giảm giá 20 % so với giá hiện tại.

  2. Truy xuất danh sách gồm: CustomerID, CustomerName, OrderID, OrderDate, ProductName, Quantity, UnitPrice cho tất cả các đơn hàng.

  3. Truy vấn sử dụng LEFT JOIN để hiển thị tất cả đơn hàng ngay cả khi chưa có chi tiết đơn hàng nào.

  4. Truy vấn sử dụng INNER JOIN để chỉ lấy các đơn hàng có chi tiết sản phẩm.

  5. Tạo VIEW tên view_TopProducts để hiển thị top 3 sản phẩm bán được nhiều nhất (theo tổng Quantity trong tất cả chi tiết đơn hàng), gồm các trường: ProductID, ProductName, TổngSốLượngBán.

  6. Tạo Stored Procedure sp_FindProductsByMaxPrice:

    • Tham số vào là @MaxPrice kiểu DECIMAL(10,2).

    • Tham số output @Count kiểu INT.

    • Thực hiện tìm tất cả sản phẩm có giá <= @MaxPrice, và trả ra số lượng sản phẩm tìm được qua @Count.

  7. Tạo Trigger trg_Product_PriceUpdate trên bảng tblProduct:

    • Khi có update trên cột Price, nếu giá mới thấp hơn 5.00, thì rollback transaction và cảnh báo (print) một thông báo như “Giá sản phẩm không được thấp hơn 5.00”.

  8. Tạo Trigger trg_Customer_EmailUpdate trên bảng tblCustomer:

    • Khi update cột Email, nếu giá trị mới không có dấu '@' thì rollback transaction và cảnh báo (print) “Email không hợp lệ”.

Phần 4: Các câu hỏi lý thuyết

A. Giải thích sự khác nhau giữa INNER JOIN, LEFT JOIN, RIGHT JOIN.

B. Khi nào nên dùng CHECK constraint và DEFAULT constraint? Cho ví dụ.

C. Ưu điểm của việc tạo index là gì? Khi nào index lại có thể khiến hiệu suất giảm?

D. Sự khác biệt giữa VIEWStored Procedure là gì?

E. Giải thích trigger là gì, và khi nào nên (và không nên) dùng trigger trong thực tế.



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

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

×