diff --git a/fall-2025/sen-209/labs/Session4/commands.md b/fall-2025/sen-209/labs/Session4/commands.md new file mode 100644 index 0000000..f7c166e --- /dev/null +++ b/fall-2025/sen-209/labs/Session4/commands.md @@ -0,0 +1,74 @@ +# 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;