Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions DDL.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@

drop table borrowings;
drop table bookRequests;
drop table books;
drop table members;



CREATE TABLE Books (
book_id INTEGER PRIMARY KEY,
title VARCHAR(30),
author VARCHAR(25),
publisher VARCHAR(25),
publish_year INTEGER,
total_quantity INTEGER,
available_quantity INTEGER
);

CREATE TABLE Members (
member_id INTEGER PRIMARY KEY,
first_name VARCHAR(15),
last_name VARCHAR(15),
email VARCHAR(35),
phone VARCHAR(20),
address VARCHAR(25)
);

CREATE TABLE Borrowings (
borrowing_id INTEGER PRIMARY KEY,
book_id INTEGER REFERENCES Books(book_id),
member_id INTEGER REFERENCES Members(member_id),
borrowing_date DATE,
due_date DATE,
return_date DATE
);

CREATE TABLE BookRequests (
request_id INTEGER PRIMARY KEY,
book_id INTEGER REFERENCES Books(book_id),
member_id INTEGER REFERENCES Members(member_id),
request_date DATE,
status VARCHAR(15)
);



48 changes: 48 additions & 0 deletions DML.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
INSERT INTO Books VALUES (1, 'To Kill a Mockingbird', 'Harper Lee', 'J. B. Lippincott', 1960, 5, 2);
INSERT INTO Books VALUES (2, '1984', 'George Orwell', 'Secker and Warburg', 1949, 3, 0);
INSERT INTO Books VALUES (3, 'The Great Gatsby', 'F. Scott Fitzgerald', 'Charles Scribner''s Sons', 1925, 4, 4);
INSERT INTO Books VALUES (4, 'Animal Farm', 'George Orwell', 'Secker and Warburg', 1945, 2, 2);
INSERT INTO Books VALUES (5, 'Brave New World', 'Aldous Huxley', 'Chatto and Windus', 1932, 3, 3);
INSERT INTO Books VALUES (6, 'The Catcher in the Rye', 'J.D. Salinger', 'Little, Brown and Company', 1951, 6, 6);
INSERT INTO Books VALUES (7, 'The Lord of the Rings', 'J.R.R. Tolkien', 'George Allen and Unwin', 1954, 10, 8);
INSERT INTO Books VALUES (8, 'One Hundred Years of Solitude', 'Gabriel Garc�a M�rquez', 'Editorial Sudamericana', 1967, 8, 5);
INSERT INTO Books VALUES (9, 'Pride and Prejudice', 'Jane Austen', 'T. Egerton, Whitehall', 1813, 5, 2);
INSERT INTO Books VALUES (10, 'The Hobbit', 'J.R.R. Tolkien', 'George Allen ', 1937, 4, 3);


INSERT INTO Members VALUES(1, 'John', 'Doe', 'johndoe@example.com', '555-555-5555', '123 Main St.');
INSERT INTO Members VALUES (2, 'Jane', 'Doe', 'janedoe@example.com', '555-555-5555', '456 Oak St.');
INSERT INTO Members VALUES (3, 'Bob', 'Smith', 'bobsmith@example.com', '555-555-5555', '789 Maple Ave.');
INSERT INTO Members VALUES (4, 'Alice', 'Johnson', 'alicejohnson@example.com', '555-555-5555', '321 Elm St.');
INSERT INTO Members VALUES (5, 'Tom', 'Wilson', 'tomwilson@example.com', '555-555-5555', '654 Pine St.');
INSERT INTO Members VALUES(6, 'Mary', 'Williams', 'marywilliams@example.com', '555-555-5555', '234 Elm St.');
INSERT INTO Members VALUES (7, 'Michael', 'Brown', 'michaelbrown@example.com', '555-555-5555', '876 Maple Ave.');
INSERT INTO Members VALUES (8, 'Sarah', 'Green', 'sarahgreen@example.com', '555-555-5555', '123 Oak St.');
INSERT INTO Members VALUES (9, 'David', 'Jones', 'davidjones@example.com', '555-555-5555', '456 Main St.');
INSERT INTO Members VALUES (10, 'Emily', 'Davis', 'emilydavis@example.com', '555-555-5555', '789 Pine St.');



INSERT INTO Borrowings VALUES(1, 1, 1, TO_DATE('2022-02-15', 'YYYY-MM-DD'), TO_DATE('2022-03-15', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(2, 6, 2, TO_DATE('2022-02-20', 'YYYY-MM-DD'), TO_DATE('2022-03-20', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(3, 3, 3, TO_DATE('2022-02-25', 'YYYY-MM-DD'), TO_DATE('2022-03-25', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(4, 7, 4, TO_DATE('2022-03-01', 'YYYY-MM-DD'), TO_DATE('2022-04-01', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(5, 8, 5, TO_DATE('2022-03-05', 'YYYY-MM-DD'), TO_DATE('2022-04-05', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(6, 9, 6, TO_DATE('2022-03-10', 'YYYY-MM-DD'), TO_DATE('2022-04-10', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(7, 10, 7, TO_DATE('2022-03-15', 'YYYY-MM-DD'), TO_DATE('2022-04-15', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(8, 1, 8, TO_DATE('2022-03-20', 'YYYY-MM-DD'), TO_DATE('2022-04-20', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(9, 6, 9, TO_DATE('2022-03-25', 'YYYY-MM-DD'), TO_DATE('2022-04-25', 'YYYY-MM-DD'), NULL);
INSERT INTO Borrowings VALUES(10, 3, 10, TO_DATE('2022-04-01', 'YYYY-MM-DD'), TO_DATE('2022-05-01', 'YYYY-MM-DD'), NULL);


INSERT INTO BookRequests VALUES (1, 2, 1, TO_DATE('2022-02-10', 'YYYY-MM-DD'), 'Approved');
INSERT INTO BookRequests VALUES(2, 4, 2, TO_DATE('2022-02-15', 'YYYY-MM-DD'), 'Pending');
INSERT INTO BookRequests VALUES(3, 5, 3, TO_DATE('2022-02-20', 'YYYY-MM-DD'), 'Rejected');
INSERT INTO BookRequests VALUES(4, 6, 4, TO_DATE('2022-02-25', 'YYYY-MM-DD'), 'Approved');
INSERT INTO BookRequests VALUES(5, 1, 5, TO_DATE('2022-03-01', 'YYYY-MM-DD'), 'Pending');
INSERT INTO BookRequests VALUES(6, 7, 6, TO_DATE('2022-03-05', 'YYYY-MM-DD'), 'Approved');
INSERT INTO BookRequests VALUES(7, 8, 7, TO_DATE('2022-03-10', 'YYYY-MM-DD'), 'Pending');
INSERT INTO BookRequests VALUES(8, 9, 8, TO_DATE('2022-03-15', 'YYYY-MM-DD'), 'Rejected');
INSERT INTO BookRequests VALUES(9, 10, 9, TO_DATE('2022-03-20', 'YYYY-MM-DD'), 'Approved');
INSERT INTO BookRequests VALUES(10, 1, 10, TO_DATE('2022-03-25', 'YYYY-MM-DD'), 'Pending');

145 changes: 145 additions & 0 deletions plsql.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
-- variable declaration and print value
set serveroutput on
declare

book_name books.title%type;

begin

select title into book_name from books where book_id = 3;

dbms_output.put_line(book_name);

end;
/

--Insert and set default value
set serveroutput on
declare
reqid NUMBER :=11;
bookid NUMBER :=9;
memberid NUMBER :=6;

begin
INSERT INTO BookRequests VALUES(reqid, bookid, memberid, TO_DATE('2022-03-25', 'YYYY-MM-DD'), 'Pending');
end;
/

--row type
set serveroutput on
declare
bookrow books%rowtype;
begin
select book_id,title,author into bookrow.book_id,bookrow.title,bookrow.author from books where book_id=7;
dbms_output.put_line(bookrow.book_id || bookrow.title||bookrow.author);
end;
/

--cursor and rowcount
set serveroutput on
declare
cursor book_cursor is select book_id, title, author , publish_year from books;
book_row books%rowtype;
begin
open book_cursor;
fetch book_cursor into
book_row.book_id,book_row.title,book_row.author,book_row.publish_year;
while book_cursor%found loop

dbms_output.put_line('book_id: '||book_row.book_id|| ' book_name:
'||book_row.title || ' author: ' ||book_row.author|| ' publish year:
'||book_row.publish_year);
dbms_output.put_line('Row count: '|| book_cursor%rowcount);
fetch book_cursor into
book_row.book_id,book_row.title,book_row.author,book_row.publish_year;
end loop;
close book_cursor;
end;
/

--loop if else
declare
id int :=1;
cursor c is select book_id, title, author , publish_year from books;
book_row books%rowtype;
begin
open c;
fetch c into book_row.book_id,book_row.title,book_row.author,book_row.publish_year;
for x in 1 .. 5 loop
if x = 3
then dbms_output.put_line('id number 3');
end if;
dbms_output.put_line('book_id: '||book_row.book_id|| ' book_name:
'||book_row.title || ' author: ' ||book_row.author|| ' publish year:
'||book_row.publish_year);

fetch c into book_row.book_id,book_row.title,book_row.author,book_row.publish_year;

end loop;
close c;
end;
/

--array and loop
set serveroutput on
declare
counter number;
book_name2 books.title%type;
TYPE NAMEARRAY IS VARRAY(5) OF books.title%type;
A_NAME NAMEARRAY:=NAMEARRAY();
begin
counter:=1;
for x in 1..5
loop
select title into book_name2 from books where book_id=x;
A_NAME.EXTEND();
A_NAME(counter):=book_name2;
counter:=counter+1;
end loop;
counter:=1;
WHILE counter<=A_NAME.COUNT
LOOP
DBMS_OUTPUT.PUT_LINE(A_NAME(counter));
counter:=counter+1;
END LOOP;
end;
/

--function
set SERVEROUTPUT on
create or replace function fun( id number) return varchar as
title varchar(30);
begin
select title into title from books where book_id = id;
return title;
end;
/

set SERVEROUTPUT on
declare

begin
dbms_output.put_line(fun(3));
end;
/

--procedure
set SERVEROUTPUT on
create or replace procedure proc( id number) is
title varchar(30);
begin
select title into title from books where book_id = id;
dbms_output.put_line(title);
end;
/

set SERVEROUTPUT on
declare
id number := 4;
begin
proc(id);
end;
/