The document provides an SQL script for creating a Library Management System database named LibraryDB. It includes tables for storing details about books, members, staff, transactions, and fines, along with sample data insertion and queries for issuing and returning books. The script ensures data integrity through foreign key constraints and includes a fine calculation mechanism for overdue books.
The document provides an SQL script for creating a Library Management System database named LibraryDB. It includes tables for storing details about books, members, staff, transactions, and fines, along with sample data insertion and queries for issuing and returning books. The script ensures data integrity through foreign key constraints and includes a fine calculation mechanism for overdue books.
-- Create database CREATE DATABASE LibraryDB; USE LibraryDB;
-- Table for storing book details
CREATE TABLE Books ( BookID INT PRIMARY KEY AUTO_INCREMENT, Title VARCHAR(255) NOT NULL, Author VARCHAR(255) NOT NULL, Publisher VARCHAR(255), YearPublished YEAR, ISBN VARCHAR(20) UNIQUE, Quantity INT NOT NULL CHECK (Quantity >= 0) );
-- Table for storing member details
CREATE TABLE Members ( MemberID INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(255) NOT NULL, Email VARCHAR(255) UNIQUE, Phone VARCHAR(15), Address TEXT, MembershipDate DATE DEFAULT CURDATE() );
-- Table for storing library staff details
CREATE TABLE Staff ( StaffID INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(255) NOT NULL, Role VARCHAR(50), Email VARCHAR(255) UNIQUE, Phone VARCHAR(15) );
-- Table for storing book transactions (issue/return)
INSERT INTO Transactions (MemberID, BookID) VALUES (1, 1);
-- Query to Return a Book (including fine calculation)
UPDATE Transactions SET ReturnDate = CURDATE(), Fine = CASE WHEN CURDATE() > DueDate THEN DATEDIFF(CURDATE(), DueDate) * 5 ELSE 0 END WHERE TransactionID = 1;
-- Output Simulation SELECT * FROM Books; SELECT * FROM Members; SELECT * FROM Staff; SELECT * FROM Transactions; SELECT * FROM Fines;