75 lines
1.7 KiB
Markdown
75 lines
1.7 KiB
Markdown
# SQL Implementation
|
|
|
|
## Database Creation
|
|
CREATE DATABASE library;
|
|
|
|
## Table creation
|
|
CREATE TABLE book (
|
|
isbn INT PRIMARY KEY,
|
|
title VARCHAR(100) NOT NULL,
|
|
author VARCHAR(100) NOT NULL,
|
|
year INT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE member (
|
|
member_id INT PRIMARY KEY,
|
|
name VARCHAR(50),
|
|
email VARCHAR(50) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE loan (
|
|
isbn INT REFERENCES book(isbn),
|
|
member_id INT REFERENCES member(member_id),
|
|
loan_date DATE NOT NULL,
|
|
return_date DATE NOT NULL,
|
|
PRIMARY_KEY(isbn, member_id)
|
|
);
|
|
|
|
SHOW TABLES;
|
|
|
|
## CRUD Queries
|
|
### Insert at least 3 books and 2 members
|
|
INSERT INTO book VALUES
|
|
(9781927077030, 'The Three Principles of the People - San Min Chu I', 'Sun Yat-Sen', 2011),
|
|
(9780717802418, 'The Communist Manifesto', 'Karl Marx, Friedrich Engels', ''),
|
|
(9780131103627, 'C Programming Language, 2nd Edition', 'Brian W. Kernighan, Dennis M. Ritchie');
|
|
|
|
INSERT INTO member VALUES
|
|
(10000001, 'Winnie The Pooh', 'winniethepooh@gmail.com'),
|
|
(10000002, 'Gary the Dinosaur', 'garythedino@gmail.com');
|
|
|
|
SELECT * FROM book;
|
|
SELECT * FROM member;
|
|
|
|
### Insert 2 loans
|
|
INSERT INTO loan VALUES
|
|
(9780131103627, 10000001, '2025-09-11', '2025-09-14'),
|
|
(9781927077030, 10000002, '2025-08-10, '2025-10-12')
|
|
|
|
SELECT * FROM loan;
|
|
|
|
### Select all loans with member name and book title (JOIN)
|
|
SELECT B.title, M.name
|
|
FROM loans L
|
|
INNER JOIN book B ON B.isbn = L.isbn,
|
|
INNER JOIN member M ON M.member_id = L.member_id;
|
|
|
|
### Update one Loan's ReturnDate
|
|
UPDATE loan
|
|
SET return_date = '2025-11-10'
|
|
WHERE
|
|
isbn = 9781927077030
|
|
AND
|
|
member_id = 10000002;
|
|
|
|
SELECT * FROM loan;
|
|
|
|
### Delete one loan record
|
|
DELETE FROM loan
|
|
WHERE
|
|
isbn = 9870131103627
|
|
AND
|
|
member_id = 10000001;
|
|
|
|
SELECT * FROM loan;
|