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

create,insert,ansQuery

The document outlines the SQL commands for creating and populating a library database, including tables for items, members, loans, and requests. It includes commands for dropping existing tables, creating new ones, and inserting sample data into these tables. Additionally, it provides example queries to retrieve information about members and their interactions with the library system.

Uploaded by

lelim48545
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

create,insert,ansQuery

The document outlines the SQL commands for creating and populating a library database, including tables for items, members, loans, and requests. It includes commands for dropping existing tables, creating new ones, and inserting sample data into these tables. Additionally, it provides example queries to retrieve information about members and their interactions with the library system.

Uploaded by

lelim48545
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

--dropping existing table:

drop table customers;


drop table orders;
drop table shippings;

--creating tables:

-- 1. Item Table
CREATE TABLE Item (itemNo INT PRIMARY KEY, title VARCHAR(255), publisher
VARCHAR(255), year INT, description TEXT, notes TEXT, subject VARCHAR(255));
-- 2. ItemAuthor Table
CREATE TABLE ItemAuthor (itemNo INT, author VARCHAR(255), PRIMARY KEY (itemNo,
author), FOREIGN KEY (itemNo) REFERENCES Item(itemNo) ON DELETE CASCADE ON UPDATE
CASCADE);
-- 3. Book Table
CREATE TABLE Book (itemNo INT PRIMARY KEY, edition VARCHAR(50), contents TEXT,
summary TEXT, isbn VARCHAR(20), FOREIGN KEY (itemNo) REFERENCES Item(itemNo) ON
DELETE CASCADE ON UPDATE CASCADE);
-- 4. Journal Table
CREATE TABLE Journal (itemNo INT PRIMARY KEY, frequency VARCHAR(50), abbrTitle
VARCHAR(100), mainSeries VARCHAR(255), issn VARCHAR(20), FOREIGN KEY (itemNo)
REFERENCES Item(itemNo) ON DELETE CASCADE ON UPDATE CASCADE);
-- 5. OnlineDatabase Table
CREATE TABLE OnlineDatabase (itemNo INT PRIMARY KEY, contents TEXT, releaseDate
DATE, FOREIGN KEY (itemNo) REFERENCES Item(itemNo) ON DELETE CASCADE ON UPDATE
CASCADE);
-- 6. Copy Table
CREATE TABLE Copy (accessionNo INT PRIMARY KEY, dtAdded DATE, cost DECIMAL(10, 2));
-- 7. PhysicalCopy Table (Specialization of Copy)
CREATE TABLE PhysicalCopy (accessionNo INT PRIMARY KEY, barcode VARCHAR(100),
status VARCHAR(50), collectionId INT, FOREIGN KEY (accessionNo) REFERENCES
Copy(accessionNo) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (collectionId)
REFERENCES Collection(collectionId) ON DELETE SET NULL ON UPDATE CASCADE);
-- 8. DigitalCopy Table (Specialization of Copy)
CREATE TABLE DigitalCopy (accessionNo INT PRIMARY KEY, url VARCHAR(255), format
VARCHAR(50), accessPeriod INT, size INT, FOREIGN KEY (accessionNo) REFERENCES
Copy(accessionNo) ON DELETE CASCADE ON UPDATE CASCADE);
-- 9. Collection Table
CREATE TABLE Collection (collectionId INT PRIMARY KEY, physicalLocation
VARCHAR(255), campus VARCHAR(100), building VARCHAR(100), room VARCHAR(50), shelf
VARCHAR(50));
-- 10. Member Table
CREATE TABLE Member (memberID INT PRIMARY KEY, PIN VARCHAR(20), name VARCHAR(255),
dateOfBirth DATE, homeAddress TEXT, email VARCHAR(100), dtJoined DATE,
dtMemberExpiry DATE, status VARCHAR(50), notes TEXT, memberType varchar(33));
-- 11. MemberPhone Table
CREATE TABLE MemberPhone (memberID INT, phone VARCHAR(20), PRIMARY KEY (memberID,
phone), FOREIGN KEY (memberID) REFERENCES Member(memberID) ON DELETE CASCADE ON
UPDATE CASCADE);
-- 12. MemberType Table
CREATE TABLE MemberType (typeId INT PRIMARY KEY, type VARCHAR(50), description
TEXT, notes TEXT,memberType INT );
-- 13. Privilege Table
CREATE TABLE Privilege (privilegeId INT PRIMARY KEY, name VARCHAR(100), description
TEXT, loanPeriod INT, maxRenewals INT, maxItems INT, maxHolds INT);
-- 14. MemberTypePrivilege Table
CREATE TABLE MemberTypePrivilege (typeId INT, privilegeId INT, PRIMARY KEY (typeId,
privilegeId), FOREIGN KEY (typeId) REFERENCES MemberType(typeId) ON DELETE CASCADE
ON UPDATE CASCADE, FOREIGN KEY (privilegeId) REFERENCES Privilege(privilegeId) ON
DELETE CASCADE ON UPDATE CASCADE);
-- 15. Loan Table
CREATE TABLE Loan (loanID INT PRIMARY KEY, dtLoaned DATE, dtDue DATE, dtReturned
DATE, numOfRenewals INT, status VARCHAR(50), memberID INT, accessionNo INT, FOREIGN
KEY (memberID) REFERENCES Member(memberID) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (accessionNo) REFERENCES Copy(accessionNo) ON DELETE CASCADE ON UPDATE
CASCADE);
-- 16. HoldRequest Table
CREATE TABLE HoldRequest (holdNo INT PRIMARY KEY, dtTimeRequested DATE,
dtTimeInformed DATE, status VARCHAR(50), comments TEXT, memberID INT, accessionNo
INT, FOREIGN KEY (memberID) REFERENCES Member(memberID) ON DELETE CASCADE ON UPDATE
CASCADE, FOREIGN KEY (accessionNo) REFERENCES Copy(accessionNo) ON DELETE CASCADE
ON UPDATE CASCADE);
-- 17. NewItemRequest Table
CREATE TABLE NewItemRequest (requestId INT PRIMARY KEY, typeOfItem VARCHAR(50),
title VARCHAR(255), publisher VARCHAR(255), edition VARCHAR(50), description TEXT,
reason TEXT, memberID INT, date DATE ,FOREIGN KEY (memberID) REFERENCES
Member(memberID) ON DELETE CASCADE ON UPDATE CASCADE);
--18 NewItemAuthor Table :
CREATE TABLE NewItemAuthor (requestId INT, author VARCHAR(255), PRIMARY KEY
(requestId, author), FOREIGN KEY (requestId) REFERENCES NewItemRequest(requestId)
ON DELETE CASCADE ON UPDATE CASCADE);

--insertion:--

-- 1. Item Table
INSERT INTO Item (itemNo, title, publisher, year, description, notes, subject)
VALUES
('ITM001', 'Database Design', 'Pearson', 2021, 'Comprehensive database guide',
'Best seller', 'Computer Science'),
('ITM002', 'Modern Art History', 'Penguin', 2023, 'Survey of 20th century art',
'Color plates included', 'Art'),
('ITM003', 'Principles of Economics', 'Macmillan', 2022, 'Micro and macro
economics', 'Used in Econ 101', 'Economics'),
('ITM004', 'Human Anatomy', 'Elsevier', 2024, 'Detailed anatomical reference',
'Color atlas', 'Medicine'),
('ITM005', 'World Literature Anthology', 'Norton', 2023, 'Global literary
collection', 'Multilingual edition', 'Literature');

-- 2. Book Table
INSERT INTO Book (itemNo, edition, contents, summary, isbn) VALUES
('ITM001', '3rd', 'Database systems, SQL', 'DBMS theory and practice', '978-
1234567890'),
('ITM002', '5th', 'Art movements, artists', 'Modern art survey', '978-2345678901'),
('ITM003', '7th', 'Supply/demand, markets', 'Economics fundamentals', '978-
3456789012'),
('ITM004', '3rd', 'Body systems, organs', 'Medical reference', '978-4567890123'),
('ITM005', '2nd', 'Novels, poems, plays', 'Global literature', '978-5678901234');

-- 3. Journal Table
INSERT INTO Journal (itemNo, frequency, abbrTitle, mainSeries, issn) VALUES
('ITM001', 'Monthly', 'DBMS Review', 'Tech Journals', '1234-5678'),
('ITM003', 'Quarterly', 'Econ Today', 'Business Series', '2345-6789'),
('ITM004', 'Bi-Monthly', 'Med Insights', 'Health Journals', '3456-7890');

-- 4. OnlineDatabase Table
INSERT INTO OnlineDatabase (itemNo, contents, releaseDate) VALUES
('ITM002', 'Art collections worldwide', '2025-03-15'),
('ITM005', 'Literary works database', '2025-04-20');

-- 5. Copy Table
INSERT INTO Copy (accessionNo, dtAdded, cost) VALUES
('CPY1001', '2025-01-10', 50.00),
('CPY1002', '2025-02-15', 45.00),
('CPY1003', '2025-01-20', 55.00),
('CPY1004', '2025-03-01', 60.00),
('CPY1005', '2025-02-05', 40.00);

-- 6. Collection Table
INSERT INTO Collection (collectionId, physicalLocation, campus, building, room,
shelf) VALUES
('COL001', 'Floor 1, Section A', 'Main', 'Central Library', '101', 'A1'),
('COL002', 'Floor 2, Section B', 'Science', 'Science Wing', '205', 'B3'),
('COL003', 'Floor 1, Section C', 'Arts', 'Humanities Bldg', '110', 'C2');

-- 7. PhysicalCopy Table
INSERT INTO PhysicalCopy (accessionNo, barcode, status, collectionId) VALUES
('CPY1001', 'BC101', 'Available', 'COL001'),
('CPY1002', 'BC102', 'Checked Out', 'COL002'),
('CPY1003', 'BC103', 'Available', 'COL003');

-- 8. DigitalCopy Table
INSERT INTO DigitalCopy (accessionNo, url, format, accessPeriod, size) VALUES
('CPY1004', 'http://library.com/lit', 'PDF', 30, 8),
('CPY1005', 'http://library.com/art', 'EPUB', 60, 10);

-- 9. MemberType Table
INSERT INTO MemberType (typeId, type, description, notes) VALUES
('MTP001', 'Student', 'Degree-seeking students', 'Standard privileges'),
('MTP002', 'Faculty', 'Teaching staff', 'Extended privileges'),
('MTP003', 'Staff', 'Administrative staff', 'Basic privileges'),
('MTP004', 'Alumni', 'Graduated students', 'Limited privileges'),
('MTP005', 'Visitor', 'Guest researchers', 'Restricted access');

-- 10. Privilege Table


INSERT INTO Privilege (privilegeId, name, description, loanPeriod, maxRenewals,
maxItems, maxHolds) VALUES
('PRV001', 'Book Loan', 'Standard book borrowing', 21, 2, 5, 3),
('PRV002', 'Journal Access', 'Academic journal access', 14, 1, 3, 2),
('PRV003', 'Database Access', 'Online resource access', 30, 3, 10, 5),
('PRV004', 'Extended Loan', 'Longer loan periods', 42, 4, 8, 4),
('PRV005', 'Guest Access', 'Limited visitor access', 7, 0, 2, 1);

-- 11. ItemAuthor Table


INSERT INTO ItemAuthor (itemNo, author) VALUES
('ITM001', 'John Doe'),
('ITM001', 'Jane Smith'),
('ITM002', 'E.H. Gombrich'),
('ITM003', 'N. Gregory Mankiw'),
('ITM004', 'Frank Netter'),
('ITM005', 'Norton Editors');
-- 12. Member Table
INSERT INTO Member (memberID, PIN, name, dateOfBirth, homeAddress, email, dtJoined,
dtMemberExpiry, status, notes,memberType) VALUES
('MEM001', '1234', 'Alex Chen', '1995-08-12', '123 Campus Ave', '[email protected]',
'2025-01-15', '2025-12-31', 'Active', 'CS Major',"MTP001"),
('MEM002', '5678', 'Dr. Smith', '1980-03-25', '456 Faculty Row', '[email protected]',
'2025-01-10', '2026-01-10', 'Active', 'Economics Prof',"MTP002"),
('MEM003', '9012', 'Maria Garcia', '1998-11-05', '789 Dorm St', '[email protected]',
'2025-02-01', '2025-12-31', 'Active', 'Art Student',"MTP003"),
('MEM004', '3456', 'David Wilson', '1990-07-18', '321 Staff Lane',
'[email protected]', '2025-01-20', '2025-12-31', 'Active', 'Library
Staff',"MTP003"),
('MEM005', '7890', 'Sarah Lee', '1997-04-30', '654 Alumni Blvd',
'[email protected]', '2025-03-05', '2025-12-31', 'Active', 'Recent
Graduate',"MTP004");

-- 13. MemberPhone Table


INSERT INTO MemberPhone (memberID, phone) VALUES
('MEM001', '555-0101'),
('MEM001', '555-0102'),
('MEM002', '555-0201'),
('MEM003', '555-0301'),
('MEM004', '555-0401'),
('MEM005', '555-0501');

-- 14. MemberTypePrivilege Table


INSERT INTO MemberTypePrivilege (typeId, privilegeId) VALUES
('MTP001', 'PRV001'), -- Students get book loans
('MTP001', 'PRV002'), -- and journal access
('MTP002', 'PRV001'), -- Faculty get all privileges
('MTP002', 'PRV002'),
('MTP002', 'PRV003'),
('MTP002', 'PRV004'),
('MTP003', 'PRV001'), -- Staff get basic loans
('MTP004', 'PRV001'), -- Alumni get basic loans
('MTP005', 'PRV005'); -- Visitors get guest access

-- 15. Loan Table


INSERT INTO Loan (loanID, dtLoaned, dtDue, dtReturned, numOfRenewals, status,
memberID, accessionNo) VALUES
('LON001', '2025-03-01', '2025-03-22', NULL, 0, 'Active', 'MEM001', 'CPY1001'),
('LON002', '2025-03-05', '2025-03-26', NULL, 1, 'Active', 'MEM002', 'CPY1002'),
('LON003', '2025-02-20', '2025-03-13', '2025-03-10', 0, 'Returned', 'MEM003',
'CPY1003');

-- 16. HoldRequest Table


INSERT INTO HoldRequest (holdNo, dtTimeRequested, dtTimeInformed, status, comments,
memberID, accessionNo) VALUES
('HLD001', '2025-03-10', '2025-03-11', 'Pending', 'Waiting for return', 'MEM004',
'CPY1001'),
('HLD002', '2025-03-12', '2025-03-12', 'Fulfilled', 'Ready for pickup', 'MEM005',
'CPY1003');

-- 17. NewItemRequest Table


INSERT INTO NewItemRequest (requestId, typeOfItem, title, publisher, edition,
description, reason, memberID, date) VALUES
('NIR001', 'Book', 'Advanced AI Ethics', 'MIT Press', '1st', 'Ethical
considerations in AI', 'Research needs', 'MEM002', '2025-02-15'),
('NIR002', 'Journal', 'Medical Breakthroughs', 'Elsevier', 'New', 'Latest medical
research', 'For nursing program', 'MEM004', '2025-03-01');

-- 18. NewItemAuthor Table


INSERT INTO NewItemAuthor (requestId, author) VALUES
('NIR001', 'Stuart Russell'),
('NIR001', 'Peter Norvig'),
('NIR002', 'Atul Gawande');

ques ans:

--q3:
SELECT
M.memberID,
M.name AS MemberName,
MP.phone AS PhoneNumber,
COUNT(HR.holdNo) AS TotalHoldRequests2025
FROM
Member M
LEFT JOIN
MemberPhone MP ON M.memberID = MP.memberID
LEFT JOIN
HoldRequest HR ON M.memberID = HR.memberID
AND HR.dtTimeRequested >= '2025-01-01'
AND HR.dtTimeRequested < '2026-01-01'
WHERE
M.memberID = 'MEM004' -- Replace with desired member ID
GROUP BY
M.memberID, M.name, MP.phone;

--q4:

SELECT DISTINCT
M.name AS MemberName,
PC.barcode AS BorrowedBookBarcode
FROM
Member AS M
JOIN
Loan AS L ON M.memberID = L.memberID
JOIN
Copy AS C ON L.accessionNo = C.accessionNo
JOIN
PhysicalCopy AS PC ON C.accessionNo = PC.accessionNo
JOIN
Item AS I ON (SELECT itemNo FROM Loan WHERE accessionNo = C.accessionNo LIMIT
1) = I.itemNo
WHERE
STRFTIME('%Y', L.dtLoaned) = '2025'
AND I.title LIKE 'Database Design';

--q1:
SELECT
m.name AS memberName,
mp.phone AS mobilePhone,
nir.title AS requestedItemTitle
FROM NewItemRequest nir
JOIN Member m ON nir.memberID = m.memberID
JOIN MemberPhone mp ON m.memberID = mp.memberID
WHERE m.name = 'Dr. Smith' AND strftime('%Y', nir.date) = '2025';

--q2:
SELECT
M.name AS MemberName,
P.maxItems AS MaximumBorrowAllowed,
'COL001' AS CollectionID
FROM
Member M
JOIN MemberType MT ON M.memberType = MT.typeId
JOIN MemberTypePrivilege MTP ON MT.typeId = MTP.typeId
JOIN Privilege P ON MTP.privilegeId = P.privilegeId
WHERE
M.name = 'David Wilson';

You might also like