-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlibrary_management.sql
More file actions
72 lines (60 loc) · 1.92 KB
/
library_management.sql
File metadata and controls
72 lines (60 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
-- Library Management Database SQL Script
-- 1. Create table for Books
CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(100) NOT NULL,
Author VARCHAR(50),
Category VARCHAR(50),
AvailableCopies INT
);
-- 2. Create table for Members
CREATE TABLE Members (
MemberID INT PRIMARY KEY,
MemberName VARCHAR(50) NOT NULL,
Email VARCHAR(100) UNIQUE,
JoinDate DATE
);
-- 3. Create table for Issued Books
CREATE TABLE IssuedBooks (
IssueID INT PRIMARY KEY,
BookID INT,
MemberID INT,
IssueDate DATE,
ReturnDate DATE,
FOREIGN KEY (BookID) REFERENCES Books(BookID),
FOREIGN KEY (MemberID) REFERENCES Members(MemberID)
);
-- 4. Insert sample data into Books
INSERT INTO Books VALUES
(1, 'Java Basics', 'John Smith', 'Programming', 5),
(2, 'SQL Made Easy', 'Anna Lee', 'Database', 3),
(3, 'Python for Data Science', 'Robert Brown', 'Data Science', 4),
(4, 'Web Development Guide', 'Emily White', 'Web Development', 2);
-- 5. Insert sample data into Members
INSERT INTO Members VALUES
(101, 'Alice Johnson', 'alice@example.com', '2024-06-10'),
(102, 'Michael Davis', 'michael@example.com', '2024-07-01'),
(103, 'Sarah Lee', 'sarah@example.com', '2024-07-15');
-- 6. Insert sample data into IssuedBooks
INSERT INTO IssuedBooks VALUES
(1001, 1, 101, '2024-07-20', '2024-08-05'),
(1002, 2, 102, '2024-07-25', '2024-08-10'),
(1003, 3, 103, '2024-07-28', NULL);
-- 7. Queries to demonstrate functionality
-- Show all books
SELECT * FROM Books;
-- Show all members
SELECT * FROM Members;
-- Find issued books with member details
SELECT ib.IssueID, b.Title, m.MemberName, ib.IssueDate, ib.ReturnDate
FROM IssuedBooks ib
JOIN Books b ON ib.BookID = b.BookID
JOIN Members m ON ib.MemberID = m.MemberID;
-- Count books by category
SELECT Category, COUNT(*) AS TotalBooks
FROM Books
GROUP BY Category;
-- Show books that are currently available
SELECT Title, AvailableCopies
FROM Books
WHERE AvailableCopies > 0;