0% found this document useful (0 votes)
2 views

LibraryDB_SQL_Script

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.

Uploaded by

Subham SiNgh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

LibraryDB_SQL_Script

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.

Uploaded by

Subham SiNgh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Library Management System - SQL Script

-- 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)


CREATE TABLE Transactions (
TransactionID INT PRIMARY KEY AUTO_INCREMENT,
MemberID INT,
BookID INT,
IssueDate DATE DEFAULT CURDATE(),
DueDate DATE DEFAULT (DATE_ADD(CURDATE(), INTERVAL 14 DAY)),
ReturnDate DATE,
Fine DECIMAL(5,2) DEFAULT 0,
FOREIGN KEY (MemberID) REFERENCES Members(MemberID),
FOREIGN KEY (BookID) REFERENCES Books(BookID)
);

-- Table for tracking fines


CREATE TABLE Fines (
FineID INT PRIMARY KEY AUTO_INCREMENT,
MemberID INT,
Amount DECIMAL(5,2) NOT NULL,
Status ENUM('Unpaid', 'Paid') DEFAULT 'Unpaid',
FOREIGN KEY (MemberID) REFERENCES Members(MemberID)
);

-- Sample Data Insertion


INSERT INTO Books (Title, Author, Publisher, YearPublished, ISBN, Quantity) VALUES
('The Great Gatsby', 'F. Scott Fitzgerald', 'Scribner', 1925, '9780743273565', 5),
('1984', 'George Orwell', 'Secker & Warburg', 1949, '9780451524935', 3);

INSERT INTO Members (Name, Email, Phone, Address) VALUES


('John Doe', 'john.doe@example.com', '1234567890', '123 Main St'),
('Jane Smith', 'jane.smith@example.com', '9876543210', '456 Oak St');

INSERT INTO Staff (Name, Role, Email, Phone) VALUES


('Alice Brown', 'Librarian', 'alice.brown@example.com', '1122334455');

-- Query to Issue a Book


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;

You might also like