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

Hệ thống quản lý thư viện – SQL Server

Mô tả

Bạn được giao xây dựng một hệ thống quản lý thư viện với các thực thể: Thể loại sách (Category), Tác giả (Author), Sách (Book), Độc giả (Reader), Mượn trả (BorrowReturn). Thực hiện các yêu cầu dưới đây.

Phần 1: Tạo Cơ sở dữ liệu và các bảng

  1. Tạo database LibraryManagement.

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

    • Category

      • CategoryID: INT NOT NULL

      • CategoryName: NVARCHAR(100)

    • Author

      • AuthorID: INT NOT NULL

      • AuthorName: NVARCHAR(100)

      • Country: NVARCHAR(100)

    • Book

      • BookID: INT NOT NULL

      • Title: NVARCHAR(200)

      • PublishYear: INT

      • Price: DECIMAL(10,2)

      • CategoryID: INT

      • AuthorID: INT

    • Reader

      • ReaderID: INT NOT NULL

      • ReaderName: NVARCHAR(100)

      • BirthDate: DATE

      • PhoneNumber: NVARCHAR(15)

    • BorrowReturn

      • BorrowID: INT NOT NULL

      • BookID: INT NOT NULL

      • ReaderID: INT NOT NULL

      • BorrowDate: DATETIME

      • ReturnDate: DATETIME NULL

  3. Thiết lập:

    • Khóa chính (PRIMARY KEY) cho mỗi bảng.

    • Khóa ngoại:

      • Book.CategoryIDCategory.CategoryID

      • Book.AuthorIDAuthor.AuthorID

      • BorrowReturn.BookIDBook.BookID

      • BorrowReturn.ReaderIDReader.ReaderID

    • Ràng buộc CHECK:

      • PublishYear phải lớn hơn 1900 và nhỏ hơn hoặc bằng năm hiện tại (GETDATE()).

      • Price >= 0.

      • Reader.BirthDate không được lớn hơn ngày hiện tại.

    • Ràng buộc UNIQUE nếu cần:

      • Số điện thoại trong Reader không được trùng lặp.

  4. Thực hiện ALTER TABLE để thêm các ràng buộc (nếu bạn ban đầu tạo bảng mà chưa có).

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

Chèn vào:

  • Ít nhất 4 thể loại sách.

  • Ít nhất 5 tác giả từ các quốc gia khác nhau.

  • Ít nhất 8 sách, thuộc các thể loại khác nhau, năm xuất bản & giá khác nhau, mỗi sách có một tác giả.

  • Ít nhất 5 độc giả với ngày sinh hợp lý & số điện thoại.

  • Ít nhất 10 bản ghi mượn trả (BorrowReturn), có ReturnDate cho một số, cho một số vẫn NULL (chưa trả).

Phần 3: Thao tác & truy vấn

Viết các câu SQL thực hiện:

  1. Tạo cột mới trong bảng Book: Stock (INT) — số lượng sách hiện có trong kho.

  2. Cập nhật một vài cuốn sách để có Stock khác nhau (ví dụ, 0, 5, 10…).

  3. Truy vấn tất cả các sách (BookID, Title, Price, CategoryName, AuthorName).

  4. Truy vấn các cuốn sách có giá > 200 và năm xuất bản từ 2000 đến hiện tại.

  5. Truy vấn các đọc giả cùng với số lượng sách họ đang mượn (ReturnDate IS NULL).

  6. Tạo VIEW view_Books_By_Author gồm AuthorName, BookID, Title, sắp xếp theo AuthorName.

  7. Tạo VIEW view_Overdue để hiển thị các bản ghi mượn trả mà ngày mượn cách ngày hiện tại đã hơn 30 ngày và chưa trả (ReturnDate IS NULL), gồm BorrowID, ReaderName, BookTitle, BorrowDate.

  8. Tạo Stored Procedure sp_UpdateBookPrice:

    • Tham số vào: @BookID INT, @NewPrice DECIMAL(10,2).

    • Kiểm tra nếu @NewPrice < 0 thì không thực hiện update, trả về lỗi hoặc thông báo.

    • Nếu hợp lệ, cập nhật giá mới cho sách có BookID.

  9. Tạo Stored Procedure sp_GetReaderBorrowHistory:

    • Tham số vào: @ReaderID INT.

    • Trả về danh sách các sách đã mượn bởi Reader này, gồm BookID, Title, BorrowDate, ReturnDate.

  10. Tạo Trigger trg_BorrowReturn_Insert trên bảng BorrowReturn:

    • Khi insert, nếu BorrowDate > ngày hiện tại thì rollback transaction và báo lỗi: “Ngày mượn không thể trong tương lai”.

  11. Tạo Trigger trg_Book_Delete trên bảng Book:

    • Khi xóa sách, nếu có bản ghi mượn trả mà ReturnDate là NULL (chưa trả) đối với cuốn sách đó thì không cho phép xóa và xuất thông báo “Không thể xoá cuốn sách đang được mượn”.

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

A. Giải thích sự khác biệt giữa CREATE TABLEALTER TABLE. Khi nào dùng ALTER?

B. Khi nào nên sử dụng ràng buộc CHECK? Và ưu nhược điểm của CHECK so với kiểm tra trong ứng dụng (application)?

C. View có những lợi ích gì? Lợi ích và hạn chế của việc dùng view?

D. Stored Procedure vs Inline SQL Queries: những ưu điểm khi dùng SP? Khi nào SP có thể không phù hợp?

E. Trigger là gì? Kể các trường hợp nên sử dụng trigger và các trường hợp nên tránh.



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

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

×