cmkl/fall-2025/sen-209/labs/Session4/commands.md

75 lines
1.7 KiB
Markdown

# SQL Implementation
## Database Creation
CREATE DATABASE library;
## Table creation
CREATE TABLE book (
isbn BIGINT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
author VARCHAR(50) 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 BIGINT 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', 1848),
(9780131103627, 'C Programming Language, 2nd Edition', 'Brian W. Kernighan, Dennis M. Ritchie', 1988);
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 loan L
INNER JOIN book B ON L.isbn = B.isbn
INNER JOIN member M ON L.member_id = M.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 = 9780131103627
AND
member_id = 10000001;
SELECT * FROM loan;