From 1732972102fc0eb9a46e7eb19b6ca84c7f03fa41 Mon Sep 17 00:00:00 2001 From: Aadit Agrawal Date: Tue, 4 Feb 2025 15:02:14 +0530 Subject: [PATCH] Update DBMS/SQL/Week5/writeup.md --- DBMS/SQL/Week5/writeup.md | 180 +++++++++++++++++++++++++++++++++++++- 1 file changed, 179 insertions(+), 1 deletion(-) diff --git a/DBMS/SQL/Week5/writeup.md b/DBMS/SQL/Week5/writeup.md index 5adcd88..5406246 100644 --- a/DBMS/SQL/Week5/writeup.md +++ b/DBMS/SQL/Week5/writeup.md @@ -13,4 +13,182 @@ Table created. SQL> create table COURSE(course# int,cname varchar(30),dept varchar(30)); Table created. -``` \ No newline at end of file +``` +Verifying, we get +```sql +SQL> desc STUDENT; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + REGNO NOT NULL VARCHAR2(20) + NAME VARCHAR2(50) + MAJOR VARCHAR2(20) + BDATE DATE + +SQL> desc COURSE; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + COURSE# NUMBER(38) + CNAME VARCHAR2(30) + DEPT VARCHAR2(30) + +``` +**Adding the textbook table:** +```SQL +SQL> create table text(book_isbn int primary key,booktitle varchar(20),publisher varchar(50),author varchar(50)); + +Table created. + +SQL> desc TEXT; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + BOOK_ISBN NOT NULL NUMBER(38) + BOOKTITLE VARCHAR2(20) + PUBLISHER VARCHAR2(50) + AUTHOR VARCHAR2(50) + +``` + +For the ENROLL table, we'll have + +```sql +SQL> ALTER TABLE COURSE + 2 ADD CONSTRAINT pk_course PRIMARY KEY (course#); + +Table altered. + +SQL> CREATE TABLE ENROLL ( + 2 regno VARCHAR2(20), + 3 course# NUMBER(38), + 4 sem INT, + 5 book_isbn NUMBER(38), + 6 PRIMARY KEY (regno, course#), + 7 CONSTRAINT fkey1course FOREIGN KEY (regno) REFERENCES STUDENT (regno), + 8 CONSTRAINT fkey2course FOREIGN KEY (course#) REFERENCES COURSE (course#), + 9 CONSTRAINT fkey3book FOREIGN KEY (book_isbn) REFERENCES TEXT (book_isbn) + 10 ); + +Table created. + +SQL> +SQL> create table BOOK_ADOPTION(course# int,sem int,book_isbn int,primary key(course#,book_isbn),constraint fkey1book_adoption foreign key(course#)references course(course#)); + +Table created. + +SQL> desc ENROLL; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + REGNO NOT NULL VARCHAR2(20) + COURSE# NOT NULL NUMBER(38) + SEM NUMBER(38) + BOOK_ISBN NUMBER(38) + +SQL> desc BOOK_ADOPTION; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + COURSE# NOT NULL NUMBER(38) + SEM NUMBER(38) + BOOK_ISBN NOT NULL NUMBER(38) +``` +Now, defining the foreign key nature of BOOK_ISBN, we have: + +```sql +SQL> alter table BOOK_ADOPTION add constraint fkey2book_adoption foreign key(book_isbn) references text(book_isbn); + +Table altered. + +SQL> alter table enroll add constraint fkey3enroll foreign key(book_isbn) references text(book_isbn); + +Table altered. +``` + +Verifying status so far, we have + +```sql +SQL> desc ENROLL; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + REGNO NOT NULL VARCHAR2(20) + COURSE# NOT NULL NUMBER(38) + SEM NUMBER(38) + BOOK_ISBN NUMBER(38) + +SQL> desc BOOK_ADOPTION; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + COURSE# NOT NULL NUMBER(38) + SEM NUMBER(38) + BOOK_ISBN NOT NULL NUMBER(38) + +SQL> descc TEXT; +SP2-0042: unknown command "descc TEXT" - rest of line ignored. +SQL> desc TEXT; + Name Null? Type + ----------------------------------------- -------- ---------------------------- + BOOK_ISBN NOT NULL NUMBER(38) + BOOKTITLE VARCHAR2(20) + PUBLISHER VARCHAR2(50) + AUTHOR VARCHAR2(50) +``` + +### POPULATING TUPPLES + +**Insertion into student:** + +```sql +SQL> insert into student values('123','Ashwin','CCE','17-oct-2003'); + +1 row created. + +SQL> insert into student values('456','Aadit','CCE','03-feb-2005'); + +1 row created. + +SQL> insert into student values('789','Shrikanth','Environment','01-jan-2023'); + +1 row created. + +SQL> insert into student values('101','Aarav','Environment','23-sep-2004'); + +1 row created. + +SQL> insert into student values('567','Amogh','CSE','03-mar-2004'); + +1 row created. + +SQL> insert into student values('890','Saarthak','CSE','03-jul-2004'); + +1 row created. +``` + +Insertion into COURSE: +```sql +SQL> insert into COURSE values(1101,'DBMS','ICT'); + +1 row created. + +SQL> insert into COURSE values(1102,'DAA','ICT'); + +1 row created. + +SQL> insert into COURSE values(2201,'COA','CS'); + +1 row created. + +SQL> insert into COURSE values(2202,'DSD','CS'); + +1 row created. + +SQL> insert into COURSE values(3301,'MATH','EVS'); + +1 row created. + +SQL> insert into COURSE values(3302,'POETRY','EVS'); + +1 row created. + +SQL> insert into COURSE values(3303,'Random','EVS'); + +1 row created. +``` + +Now, we can either \ No newline at end of file