├── DBMS-01-Library Database ├── 01-Problem Statement.txt ├── Library-Create Table Scripts.sql ├── Library-Insert scripts.sql └── Library-Queries.sql ├── DBMS-02-Order Database ├── Order-Create Table Scripts.sql ├── Order-Insert Scripts.sql └── Order-Queries.sql ├── DBMS-03-Movie Database ├── Movie-Create Table Scripts.sql ├── Movie-Insert Scripts.sql └── Movie-Queries.sql ├── DBMS-04-College Database ├── College-Create Table Scripts.sql ├── College-Insert Scripts.sql └── College-Queries.sql ├── DBMS-05-Company Database ├── Company-Create Table Scripts.sql ├── Company-Insert Scripts.sql └── Company-Queries.sql ├── LICENSE └── README.md /DBMS-01-Library Database/01-Problem Statement.txt: -------------------------------------------------------------------------------- 1 | Consider the following schema for a Library Database: 2 | 3 | BOOK(Book_id, Title, Publisher_Name, Pub_Year) 4 | BOOK_AUTHORS(Book_id, Author_Name) 5 | PUBLISHER(Name, Address, Phone) 6 | BOOK_COPIES(Book_id, Programme_id, No-of_Copies) 7 | BOOK_LENDING(Book_id, Programme_id, Card_No, Date_Out, Due_Date) 8 | LIBRARY_PROGRAMME(Programme_id, Programme_Name, Address) 9 | 10 | Write SQL queries to 11 | 1. Retrieve details of all books in the library – id, title, name of publisher, authors, 12 | number of copies in each Programme, etc. 13 | 14 | 2. Get the particulars of borrowers who have borrowed more than 3 books, but 15 | from Jan 2017 to Jun 2017. 16 | 17 | 3. Delete a book in BOOK table. Update the contents of other tables to reflect this 18 | data manipulation operation. 19 | 20 | 4. Partition the BOOK table based on year of publication. Demonstrate its working 21 | with a simple query. 22 | 23 | 5. Create a view of all books and its number of copies that are currently available 24 | in the Library. -------------------------------------------------------------------------------- /DBMS-01-Library Database/Library-Create Table Scripts.sql: -------------------------------------------------------------------------------- 1 | --Create Table PUBLISHER with Primary Key as NAME 2 | 3 | CREATE TABLE PUBLISHER 4 | (NAME VARCHAR(20) PRIMARY KEY, 5 | PHONE INTEGER, 6 | ADDRESS VARCHAR(20)); 7 | 8 | DESC PUBLISHER; 9 | 10 | --Create Table BOOK with Primary Key as BOOK_ID and Foreign Key PUB_NAME referring the PUBLISHER table 11 | 12 | CREATE TABLE BOOK 13 | (BOOK_ID INTEGER PRIMARY KEY, 14 | TITLE VARCHAR(20), 15 | PUB_YEAR VARCHAR(20), 16 | PUB_NAME VARCHAR(20), 17 | FOREIGN KEY (PUB_NAME) REFERENCES PUBLISHER(NAME) ON DELETE CASCADE); 18 | 19 | 20 | DESC BOOK; 21 | 22 | --Create Table BOOK_AUTHORS with Primary Key as BOOK_ID and AUTHOR_NAME and Foreign Key BOOK_ID referring the BOOK table 23 | 24 | CREATE TABLE BOOK_AUTHORS 25 | (AUTHOR_NAME VARCHAR(20), 26 | BOOK_ID INTEGER, 27 | FOREIGN KEY (BOOK_ID) REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE, 28 | PRIMARY KEY(BOOK_ID, AUTHOR_NAME)); 29 | 30 | DESC BOOK_AUTHORS; 31 | 32 | --Create Table LIBRARY_PROGRAMME with Primary Key as PROGRAMME_ID 33 | 34 | CREATE TABLE LIBRARY_PROGRAMME 35 | (PROGRAMME_ID INTEGER PRIMARY KEY, 36 | PROGRAMME_NAME VARCHAR(50), 37 | ADDRESS VARCHAR(50)); 38 | 39 | DESC LIBRARY_PROGRAMME; 40 | 41 | --Create Table as BOOK_COPIES with Primary Key as BOOK_ID and PROGRAMME_ID and Foreign Key BOOK_ID and PROGRAMME_ID referring the BOOK and LIBRARY_PROGRAMME tables respectively 42 | 43 | CREATE TABLE BOOK_COPIES 44 | (NO_OF_COPIES INTEGER, 45 | BOOK_ID INTEGER, 46 | PROGRAMME_ID INTEGER, 47 | FOREIGN KEY (BOOK_ID) REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE, 48 | FOREIGN KEY(PROGRAMME_ID) REFERENCES LIBRARY_PROGRAMME(PROGRAMME_ID) ON DELETE CASCADE, 49 | PRIMARY KEY (BOOK_ID,PROGRAMME_ID)); 50 | 51 | DESC BOOK_COPIES; 52 | 53 | -- Create Table CARD with Primary Key as CARD_NO 54 | 55 | CREATE TABLE CARD 56 | (CARD_NO INTEGER PRIMARY KEY); 57 | 58 | DESC CARD; 59 | 60 | -- Create Table BOOK_LENDING With Primary Key as BOOK_ID, PROGRAMME_ID and CARD_NO and Foreign key as BOOK_ID, PROGRAMME_ID and CARD_NO referring the BOOK, LIBRARY_PROGRAMME and CARD tables respectively 61 | 62 | CREATE TABLE BOOK_LENDING 63 | (BOOK_ID INTEGER, 64 | PROGRAMME_ID INTEGER, 65 | CARD_NO INTEGER, 66 | DATE_OUT DATE, 67 | DUE_DATE DATE, 68 | FOREIGN KEY (BOOK_ID) REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE, 69 | FOREIGN KEY (PROGRAMME_ID) REFERENCES LIBRARY_PROGRAMME(PROGRAMME_ID) ON DELETE CASCADE, 70 | FOREIGN KEY (CARD_NO) REFERENCES CARD(CARD_NO) ON DELETE CASCADE, 71 | PRIMARY KEY (BOOK_ID,PROGRAMME_ID,CARD_NO)); 72 | 73 | DESC BOOKLENDING; -------------------------------------------------------------------------------- /DBMS-01-Library Database/Library-Insert scripts.sql: -------------------------------------------------------------------------------- 1 | --Inserting records into PUBLISHER table 2 | 3 | INSERT INTO PUBLISHER VALUES('SAPNA',912121212,'BANGALORE'); 4 | INSERT INTO PUBLISHER VALUES('PENGUIN',921212121,'NEW YORK'); 5 | INSERT INTO PUBLISHER VALUES('PEARSON',913131313,'HYDERABAD'); 6 | INSERT INTO PUBLISHER VALUES('OZONE',931313131,'CHENNAI'); 7 | INSERT INTO PUBLISHER VALUES('PLANETZ',914141414,'BANGALORE'); 8 | 9 | SELECT * FROM PUBLISHER; 10 | 11 | -------------------------- 12 | 13 | --Inserting records into BOOK table 14 | 15 | INSERT INTO BOOK VALUES(1,'BASICS OF EXCEL','JAN-2017','SAPNA'); 16 | INSERT INTO BOOK VALUES(2,'PROGRAMMING MINDSET','JUN-2018','PLANETZ'); 17 | INSERT INTO BOOK VALUES(3,'BASICS OF SQL','SEP-2016','PEARSON'); 18 | INSERT INTO BOOK VALUES(4,'DBMS FOR BEGINNERS','SEP-2015','PLANETZ'); 19 | INSERT INTO BOOK VALUES(5,'WEB SERVICES','MAY-2017','OZONE'); 20 | 21 | SELECT * FROM BOOK; 22 | 23 | -------------------------- 24 | 25 | --Inserting records into BOOK_AUTHORS table 26 | 27 | INSERT INTO BOOK_AUTHORS VALUES('SRI DEVI',1); 28 | INSERT INTO BOOK_AUTHORS VALUES('DEEPAK',2); 29 | INSERT INTO BOOK_AUTHORS VALUES('PRAMOD',3); 30 | INSERT INTO BOOK_AUTHORS VALUES('SWATHI',4); 31 | INSERT INTO BOOK_AUTHORS VALUES('PRATHIMA',5); 32 | 33 | SELECT * FROM BOOK_AUTHORS; 34 | 35 | ---------------------------- 36 | 37 | --Inserting records into LIBRARY_PROGRAMME table 38 | 39 | INSERT INTO LIBRARY_PROGRAMME VALUES(100,'HSR LAYOUT','BANGALORE'); 40 | INSERT INTO LIBRARY_PROGRAMME VALUES(101,'KENGERI','BANGALORE'); 41 | INSERT INTO LIBRARY_PROGRAMME VALUES(102,'BANASHANKARI','BANGALORE'); 42 | INSERT INTO LIBRARY_PROGRAMME VALUES(103,'SHANKARA NAGAR','MANGALORE'); 43 | INSERT INTO LIBRARY_PROGRAMME VALUES(104,'MANIPAL','UDUPI'); 44 | 45 | SELECT * FROM LIBRARY_PROGRAMME; 46 | 47 | ------------------------- 48 | 49 | --Inserting records into BOOK_COPIES table 50 | 51 | INSERT INTO BOOK_COPIES VALUES(10,1,100); 52 | INSERT INTO BOOK_COPIES VALUES(16,1,101); 53 | INSERT INTO BOOK_COPIES VALUES(20,2,102); 54 | INSERT INTO BOOK_COPIES VALUES(6,2,103); 55 | INSERT INTO BOOK_COPIES VALUES(4,3,104); 56 | INSERT INTO BOOK_COPIES VALUES(7,5,100); 57 | INSERT INTO BOOK_COPIES VALUES(3,4,101); 58 | 59 | SELECT * FROM BOOK_COPIES; 60 | 61 | -------------------------- 62 | 63 | --Inserting records into BOOK_COPIES table 64 | 65 | INSERT INTO CARD VALUES(500); 66 | INSERT INTO CARD VALUES(501); 67 | INSERT INTO CARD VALUES(502); 68 | INSERT INTO CARD VALUES(503); 69 | INSERT INTO CARD VALUES(504); 70 | 71 | SELECT * FROM CARD; 72 | 73 | -------------------------- 74 | 75 | --Inserting records into BOOK_LENDING table 76 | 77 | INSERT INTO BOOK_LENDING VALUES(1, 100, 501, '2017-01-01','2017-01-31'); 78 | INSERT INTO BOOK_LENDING VALUES(3, 104, 501, '2017-01-11','2017-03-01'); 79 | INSERT INTO BOOK_LENDING VALUES(2, 103, 501, '2017-02-21','2017-04-21'); 80 | INSERT INTO BOOK_LENDING VALUES(4, 101, 501, '2017-03-11','2017-06-11'); 81 | INSERT INTO BOOK_LENDING VALUES(1, 101, 504, '2017-04-09','2017-07-08'); 82 | 83 | SELECT * FROM BOOK_LENDING; 84 | 85 | -------------------------- 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /DBMS-01-Library Database/Library-Queries.sql: -------------------------------------------------------------------------------- 1 | --Retrieve details of all books in the library – id, title, name of publisher, authors, 2 | --number of copies in each Programme, etc. 3 | 4 | SELECT B.BOOK_ID, B.TITLE, B.PUB_NAME, A.AUTHOR_NAME,C.NO_OF_COPIES,L.PROGRAMME_ID 5 | FROM BOOK B, BOOK_AUTHORS A, BOOK_COPIES C, LIBRARY_PROGRAMME L 6 | WHERE B.BOOK_ID=A.BOOK_ID 7 | AND B.BOOK_ID=C.BOOK_ID 8 | AND L.PROGRAMME_ID=C.PROGRAMME_ID; 9 | 10 | --------------------------------------------- 11 | 12 | --Get the particulars of borrowers who have borrowed more than 3 books, but 13 | --from Jan 2017 to Jun 2017. 14 | 15 | SELECT CARD_NO 16 | FROM BOOK_LENDING 17 | WHERE DATE_OUT BETWEEN '2017-01-01' AND '2017-06-01' 18 | GROUP BY CARD_NO 19 | HAVING COUNT(*)>3; 20 | 21 | --------------------------------------------- 22 | 23 | --Delete a book in BOOK table. Update the contents of other tables to reflect this 24 | --data manipulation operation. 25 | 26 | DELETE FROM BOOK 27 | WHERE BOOK_ID=3; 28 | 29 | SELECT * FROM BOOK; 30 | 31 | SELECT * FROM BOOK_AUTHORS; 32 | 33 | --------------------------------------------- 34 | 35 | --Partition the BOOK table based on year of publication. Demonstrate its working 36 | --with a simple query. 37 | 38 | CREATE VIEW V_PUBLICATION AS SELECT 39 | PUB_YEAR 40 | FROM BOOK; 41 | 42 | SELECT * FROM V_PUBLICATION; 43 | 44 | --------------------------------------------- 45 | 46 | --Create a view of all books and its number of copies that are currently available 47 | --in the Library. 48 | 49 | CREATE VIEW V_BOOKS AS 50 | SELECT B.BOOK_ID, B.TITLE, C.NO_OF_COPIES 51 | FROM 52 | BOOK B, BOOK_COPIES C, LIBRARY_PROGRAMME L 53 | WHERE B.BOOK_ID=C.BOOK_ID 54 | AND C.PROGRAMME_ID=L.PROGRAMME_ID; 55 | 56 | SELECT * FROM V_BOOKS; -------------------------------------------------------------------------------- /DBMS-02-Order Database/Order-Create Table Scripts.sql: -------------------------------------------------------------------------------- 1 | --Create Table SALESMAN with Primary Key as SALESMAN_ID 2 | 3 | CREATE TABLE SALESMAN( 4 | SALESMAN_ID INTEGER PRIMARY KEY, 5 | NAME VARCHAR(20), 6 | CITY VARCHAR(20), 7 | COMMISSION VARCHAR(20)); 8 | 9 | DESC SALESMAN; 10 | 11 | -------------------------------------- 12 | 13 | --Create Table CUSTOMER with Primary Key as CUSTOMER_ID and Foreign Key SALESMAN_ID referring the SALESMAN table 14 | 15 | CREATE TABLE CUSTOMER( 16 | CUSTOMER_ID INTEGER PRIMARY KEY, 17 | CUST_NAME VARCHAR(20), 18 | CITY VARCHAR(20), 19 | GRADE INTEGER, 20 | SALESMAN_ID INTEGER, 21 | FOREIGN KEY (SALESMAN_ID) REFERENCES SALESMAN(SALESMAN_ID) ON DELETE SET NULL); 22 | 23 | DESC CUSTOMER; 24 | 25 | -------------------------------------- 26 | 27 | --Create Table ORDERS with Primary Key as ORDER_NO and Foreign Key CUSTOMER_ID and SALESMAN_ID referring the CUSTOMER and SALESMAN tables respectively 28 | 29 | CREATE TABLE ORDERS( 30 | ORDER_NO INTEGER PRIMARY KEY, 31 | PURCHASE_AMOUNT DECIMAL(10,2), 32 | ORDER_DATE DATE, 33 | CUSTOMER_ID INTEGER, 34 | SALESMAN_ID INTEGER, 35 | FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMER(CUSTOMER_ID)ON DELETE CASCADE, 36 | FOREIGN KEY (SALESMAN_ID) REFERENCES SALESMAN(SALESMAN_ID) ON DELETE CASCADE); 37 | 38 | DESC ORDERS; -------------------------------------------------------------------------------- /DBMS-02-Order Database/Order-Insert Scripts.sql: -------------------------------------------------------------------------------- 1 | --Inserting records into SALESMAN table 2 | 3 | INSERT INTO SALESMAN VALUES(1000,'RAHUL','BANGALORE','20%'); 4 | INSERT INTO SALESMAN VALUES(2000,'ANKITA','BANGALORE','25%'); 5 | INSERT INTO SALESMAN VALUES(3000,'SHARMA','MYSORE','30%'); 6 | INSERT INTO SALESMAN VALUES(4000,'ANJALI','DELHI','15%'); 7 | INSERT INTO SALESMAN VALUES(5000,'RAJ','HYDERABAD','15%'); 8 | 9 | SELECT * FROM SALESMAN; 10 | 11 | ------------------------------------------ 12 | 13 | --Inserting records into CUSTOMER table 14 | 15 | INSERT INTO CUSTOMER VALUES(1,'ADYA','BANGALORE',100,1000); 16 | INSERT INTO CUSTOMER VALUES(2,'BANU','MANGALORE',300,1000); 17 | INSERT INTO CUSTOMER VALUES(3,'CHETHAN','CHENNAI',400,2000); 18 | INSERT INTO CUSTOMER VALUES(4,'DANISH','BANGALORE',200,2000); 19 | INSERT INTO CUSTOMER VALUES(5,'ESHA','BANGALORE',400,3000); 20 | 21 | SELECT * FROM CUSTOMER; 22 | 23 | ------------------------------------------ 24 | 25 | --Inserting records into ORDERS table 26 | 27 | INSERT INTO ORDERS VALUES(201,5000,'2020-06-02',1,1000); 28 | INSERT INTO ORDERS VALUES(202,450,'2020-04-09',1,2000); 29 | INSERT INTO ORDERS VALUES(203,1000,'2020-03-15',3,2000); 30 | INSERT INTO ORDERS VALUES(204,3500,'2020-07-09',4,3000); 31 | INSERT INTO ORDERS VALUES(205,550,'2020-05-05',2,2000); 32 | 33 | SELECT * FROM ORDERS; -------------------------------------------------------------------------------- /DBMS-02-Order Database/Order-Queries.sql: -------------------------------------------------------------------------------- 1 | -- Count the customers with grades above Bangalore’s average 2 | 3 | SELECT GRADE,COUNT(DISTINCT CUSTOMER_ID) 4 | FROM CUSTOMER 5 | GROUP BY GRADE 6 | HAVING GRADE>(SELECT AVG(GRADE) 7 | FROM CUSTOMER 8 | WHERE CITY='BANGALORE'); 9 | 10 | ---------------------------------- 11 | 12 | --Find the name and numbers of all salesman who had more than one customer 13 | 14 | SELECT SALESMAN_ID, NAME 15 | FROM SALESMAN S 16 | WHERE (SELECT COUNT(*) 17 | FROM CUSTOMER C 18 | WHERE C.SALESMAN_ID=S.SALESMAN_ID) > 1; 19 | 20 | ---------------------------------- 21 | 22 | --List all the salesman and indicate those who have and don’t have customers in their cities (Use UNION operation.) 23 | 24 | SELECT S.SALESMAN_ID, S.NAME, C.CUST_NAME, S.COMMISSION 25 | FROM SALESMAN S, CUSTOMER C 26 | WHERE S.CITY=C.CITY 27 | UNION 28 | SELECT S.SALESMAN_ID,S.NAME,'NO MATCH',S.COMMISSION 29 | FROM SALESMAN S 30 | WHERE CITY NOT IN 31 | (SELECT CITY 32 | FROM CUSTOMER) 33 | ORDER BY 1 ASC; 34 | 35 | ----------------------------------- 36 | 37 | --Create a view that finds the salesman who has the customer with the highest order of a day. 38 | 39 | CREATE VIEW V_SALESMAN AS 40 | SELECT O.ORDER_DATE, S.SALESMAN_ID, S.NAME 41 | FROM SALESMAN S,ORDERS O 42 | WHERE S.SALESMAN_ID = O.SALESMAN_ID 43 | AND O.PURCHASE_AMOUNT= (SELECT MAX(PURCHASE_AMOUNT) 44 | FROM ORDERS C 45 | WHERE C.ORDER_DATE=O.ORDER_DATE); 46 | 47 | SELECT * FROM V_SALESMAN; 48 | 49 | ----------------------------------- 50 | 51 | --Demonstrate the DELETE operation by removing salesman with id 1000. All his orders must also be deleted. 52 | 53 | DELETE FROM SALESMAN 54 | WHERE SALESMAN_ID=1000; 55 | 56 | SELECT * FROM SALESMAN; 57 | 58 | SELECT * FROM ORDERS; -------------------------------------------------------------------------------- /DBMS-03-Movie Database/Movie-Create Table Scripts.sql: -------------------------------------------------------------------------------- 1 | 2 | --Create Table ACTOR with Primary Key as ACT_ID 3 | 4 | CREATE TABLE ACTOR ( 5 | ACT_ID INTEGER PRIMARY KEY, 6 | ACT_NAME VARCHAR(20), 7 | ACT_GENDER CHAR(1)); 8 | 9 | DESC ACTOR; 10 | 11 | ---------------------------- 12 | 13 | --Create Table DIRECTOR with Primary Key as DIR_ID 14 | 15 | CREATE TABLE DIRECTOR( 16 | DIR_ID INTEGER PRIMARY KEY, 17 | DIR_NAME VARCHAR(20), 18 | DIR_PHONE INTEGER); 19 | 20 | DESC DIRECTOR; 21 | 22 | ---------------------------- 23 | 24 | --Create Table MOVIES with Primary Key as MOV_ID and Foreign Key DIR_ID referring DIRECTOR table 25 | 26 | CREATE TABLE MOVIES( 27 | MOV_ID INTEGER PRIMARY KEY, 28 | MOV_TITLE VARCHAR(25), 29 | MOV_YEAR INTEGER, 30 | MOV_LANG VARCHAR(15), 31 | DIR_ID INTEGER, 32 | FOREIGN KEY (DIR_ID) REFERENCES DIRECTOR(DIR_ID)); 33 | 34 | DESC MOVIES; 35 | 36 | ---------------------------- 37 | 38 | --Create Table MOVIE_CAST with Primary Key as MOV_ID and ACT_ID and Foreign Key ACT_ID and MOV_ID referring ACTOR and MOVIES tables respectively 39 | 40 | CREATE TABLE MOVIE_CAST( 41 | ACT_ID INTEGER, 42 | MOV_ID INTEGER, 43 | ROLE VARCHAR(10), 44 | PRIMARY KEY (ACT_ID,MOV_ID), 45 | FOREIGN KEY (ACT_ID) REFERENCES ACTOR(ACT_ID), 46 | FOREIGN KEY (MOV_ID) REFERENCES MOVIES(MOV_ID)); 47 | 48 | DESC MOVIE_CAST; 49 | 50 | ---------------------------- 51 | 52 | --Create Table RATING with Primary Key as MOV_ID and Foreign Key MOV_ID referring MOVIES table 53 | 54 | CREATE TABLE RATING( 55 | MOV_ID INTEGER PRIMARY KEY, 56 | REV_STARS VARCHAR(25), 57 | FOREIGN KEY (MOV_ID) REFERENCES MOVIES(MOV_ID)); 58 | 59 | 60 | DESC RATING; 61 | -------------------------------------------------------------------------------- /DBMS-03-Movie Database/Movie-Insert Scripts.sql: -------------------------------------------------------------------------------- 1 | --Inserting records into ACTOR table 2 | 3 | INSERT INTO ACTOR VALUES(101,'RAHUL','M'); 4 | INSERT INTO ACTOR VALUES(102,'ANKITHA','F'); 5 | INSERT INTO ACTOR VALUES(103,'RADHIKA','F'); 6 | INSERT INTO ACTOR VALUES(104,'CHETHAN','M'); 7 | INSERT INTO ACTOR VALUES(105,'VIVAN','M'); 8 | 9 | SELECT * FROM ACTOR; 10 | 11 | ----------------------------- 12 | 13 | --Inserting records into DIRECTOR table 14 | 15 | INSERT INTO DIRECTOR VALUES(201,'ANUP',918181818); 16 | INSERT INTO DIRECTOR VALUES(202,'HITCHCOCK',918181812); 17 | INSERT INTO DIRECTOR VALUES(203,'SHASHANK',918181813); 18 | INSERT INTO DIRECTOR VALUES(204,'STEVEN SPIELBERG',918181814); 19 | INSERT INTO DIRECTOR VALUES(205,'ANAND',918181815); 20 | 21 | SELECT * FROM DIRECTOR; 22 | 23 | ------------------------------ 24 | 25 | --Inserting records into MOVIES table 26 | 27 | INSERT INTO MOVIES VALUES(1001,'MANASU',2017,'KANNADA',201); 28 | INSERT INTO MOVIES VALUES(1002,'AAKASHAM',2015,'TELUGU',202); 29 | INSERT INTO MOVIES VALUES(1003,'KALIYONA',2008,'KANNADA',201); 30 | INSERT INTO MOVIES VALUES(1004,'WAR HORSE',2011,'ENGLISH',204); 31 | INSERT INTO MOVIES VALUES(1005,'HOME',2012,'ENGLISH',205); 32 | 33 | SELECT * FROM MOVIES; 34 | 35 | ----------------------------- 36 | 37 | --Inserting records into MOVIE_CAST table 38 | 39 | INSERT INTO MOVIE_CAST VALUES(101,1002,'HERO'); 40 | INSERT INTO MOVIE_CAST VALUES(101,1001,'HERO'); 41 | INSERT INTO MOVIE_CAST VALUES(103,1003,'HEROINE'); 42 | INSERT INTO MOVIE_CAST VALUES(103,1002,'GUEST'); 43 | INSERT INTO MOVIE_CAST VALUES(104,1004,'HERO'); 44 | 45 | SELECT * FROM MOVIE_CAST; 46 | 47 | ----------------------------- 48 | 49 | --Inserting records into RATING table 50 | 51 | INSERT INTO RATING VALUES(1001,4); 52 | INSERT INTO RATING VALUES(1002,2); 53 | INSERT INTO RATING VALUES(1003,5); 54 | INSERT INTO RATING VALUES(1004,4); 55 | INSERT INTO RATING VALUES(1005,3); 56 | 57 | SELECT * FROM RATING; 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /DBMS-03-Movie Database/Movie-Queries.sql: -------------------------------------------------------------------------------- 1 | 2 | --List the titles of all movies directed by ‘Hitchcock’. 3 | 4 | SELECT MOV_TITLE 5 | FROM MOVIES 6 | WHERE DIR_ID = (SELECT DIR_ID 7 | FROM DIRECTOR 8 | WHERE DIR_NAME='HITCHCOCK'); 9 | 10 | --------------------------------- 11 | 12 | --Find the movie names where one or more actors acted in two or more movies. 13 | 14 | SELECT MOV_TITLE 15 | FROM MOVIES M,MOVIE_CAST MC 16 | WHERE M.MOV_ID=MC.MOV_ID AND ACT_ID IN (SELECT ACT_ID 17 | FROM MOVIE_CAST GROUP BY ACT_ID 18 | HAVING COUNT(ACT_ID)>1) 19 | GROUP BY MOV_TITLE 20 | HAVING COUNT(*)>1; 21 | 22 | -------------------------------- 23 | 24 | --List all actors who acted in a movie before 2000 and also in a movie after 2015 (use JOIN operation). 25 | 26 | SELECT ACT_NAME 27 | FROM ACTOR A 28 | JOIN MOVIE_CAST C 29 | ON A.ACT_ID=C.ACT_ID 30 | JOIN MOVIES M 31 | ON C.MOV_ID=M.MOV_ID 32 | WHERE M.MOV_YEAR NOT BETWEEN 2000 AND 2015; 33 | 34 | -------------------------------- 35 | 36 | --Find the title of movies and number of stars for each movie that has at least one rating 37 | --and find the highest number of stars that movie received. Sort the result by 38 | --movie title. 39 | 40 | SELECT MOV_TITLE,MAX(REV_STARS) 41 | FROM MOVIES 42 | INNER JOIN RATING USING (MOV_ID) 43 | GROUP BY MOV_TITLE 44 | HAVING MAX(REV_STARS)>0 45 | ORDER BY MOV_TITLE; 46 | 47 | --------------------------------- 48 | 49 | --Update rating of all movies directed by ‘Steven Spielberg’ to 5. 50 | 51 | UPDATE RATING 52 | SET REV_STARS=5 53 | WHERE MOV_ID IN (SELECT MOV_ID FROM MOVIES 54 | WHERE DIR_ID IN (SELECT DIR_ID 55 | FROM DIRECTOR 56 | WHERE DIR_NAME='STEVEN SPIELBERG')); 57 | -------------------------------------------------------------------------------- /DBMS-04-College Database/College-Create Table Scripts.sql: -------------------------------------------------------------------------------- 1 | --Create table STUDENT with PRIMARY KEY as USN 2 | 3 | CREATE TABLE STUDENT( 4 | USN VARCHAR(10) PRIMARY KEY, 5 | SNAME VARCHAR(25), 6 | ADDRESS VARCHAR(25), 7 | PHONE INTEGER, 8 | GENDER CHAR(1)); 9 | 10 | DESC STUDENT; 11 | 12 | ----------------------------------- 13 | 14 | --Create table SEMSEC with PRIMARY KEY as SSID 15 | 16 | CREATE TABLE SEMSEC( 17 | SSID VARCHAR(5) PRIMARY KEY, 18 | SEM INTEGER, 19 | SEC CHAR(1)); 20 | 21 | DESC SEMSEC; 22 | 23 | ----------------------------------- 24 | 25 | --Create table CLASS with PRIMARY KEY as USN and FOREIGN KEY USN, SSID 26 | 27 | CREATE TABLE CLASS( 28 | USN VARCHAR(10) PRIMARY KEY, 29 | SSID VARCHAR(5), 30 | FOREIGN KEY(USN) REFERENCES STUDENT(USN), 31 | FOREIGN KEY(SSID) REFERENCES SEMSEC(SSID)); 32 | 33 | DESC CLASS; 34 | 35 | ------------------------------------ 36 | 37 | --Create table SUBJECT with PRIMARY KEY as SUBCODE 38 | 39 | CREATE TABLE SUBJECT( 40 | SUBCODE VARCHAR(8) PRIMARY KEY, 41 | TITLE VARCHAR(20), 42 | SEM INTEGER, 43 | CREDITS INTEGER); 44 | 45 | DESC SUBJECT; 46 | 47 | -------------------------------------- 48 | 49 | --Create table IAMARKS with PRIMARY KEY as SUBCODE,USN,SSID and FOREIGN KEY SUBCODE, SSID 50 | 51 | CREATE TABLE IAMARKS( 52 | USN VARCHAR(10), 53 | SUBCODE VARCHAR(8), 54 | SSID VARCHAR(5), 55 | TEST1 INTEGER, 56 | TEST2 INTEGER, 57 | TEST3 INTEGER, 58 | FINALIA INTEGER, 59 | PRIMARY KEY(SUBCODE,USN,SSID), 60 | FOREIGN KEY(USN) REFERENCES STUDENT(USN), 61 | FOREIGN KEY(SUBCODE) REFERENCES SUBJECT(SUBCODE), 62 | FOREIGN KEY(SSID) REFERENCES SEMSEC(SSID)); 63 | 64 | DESC IAMARKS; 65 | 66 | -------------------------------------------------------------------------------- /DBMS-04-College Database/College-Insert Scripts.sql: -------------------------------------------------------------------------------- 1 | --Inserting records into STUDENT table 2 | 3 | INSERT INTO STUDENT VALUES ('1BI13CS020','ANAND','BELAGAVI', 1233423,'M'); 4 | INSERT INTO STUDENT VALUES ('1BI13CS062','BABIITHA','BENGALURU',43123,'F'); 5 | INSERT INTO STUDENT VALUES ('1BI15CS101','CHETHAN','BENGALURU', 534234,'M'); 6 | INSERT INTO STUDENT VALUES ('1BI13CS066','DIVYA','MANGALURU',534432,'F'); 7 | INSERT INTO STUDENT VALUES ('1BI14CS010','EESHA','BENGALURU', 345456,'F'); 8 | INSERT INTO STUDENT VALUES ('1BI14CS032','GANESH','BENGALURU',574532,'M'); 9 | INSERT INTO STUDENT VALUES ('1BI14CS025','HARISH','BENGALURU', 235464,'M'); 10 | INSERT INTO STUDENT VALUES ('1BI15CS011','ISHA','TUMKUR', 764343,'F'); 11 | INSERT INTO STUDENT VALUES ('1BI15CS029','JOEY','DAVANGERE', 235653,'M'); 12 | INSERT INTO STUDENT VALUES ('1BI15CS045','KAVYA','BELLARY', 865434,'F'); 13 | INSERT INTO STUDENT VALUES ('1BI15CS091','MALINI','MANGALURU',235464,'F'); 14 | INSERT INTO STUDENT VALUES ('1BI16CS045','NEEL','KALBURGI', 856453,'M'); 15 | INSERT INTO STUDENT VALUES ('1BI16CS088','PARTHA','SHIMOGA', 234546,'M'); 16 | INSERT INTO STUDENT VALUES ('1BI16CS122','REEMA','CHIKAMAGALUR', 853333,'F'); 17 | 18 | SELECT * FROM STUDENT; 19 | 20 | ------------------------------------ 21 | 22 | --Inserting records into SEMSEC table 23 | 24 | INSERT INTO SEMSEC VALUES ('CSE8A', 8,'A'); 25 | INSERT INTO SEMSEC VALUES ('CSE8B', 8,'B'); 26 | INSERT INTO SEMSEC VALUES ('CSE8C', 8,'C'); 27 | INSERT INTO SEMSEC VALUES ('CSE7A', 7,'A'); 28 | INSERT INTO SEMSEC VALUES ('CSE7B', 7,'B'); 29 | INSERT INTO SEMSEC VALUES ('CSE7C', 7,'C'); 30 | INSERT INTO SEMSEC VALUES ('CSE6A', 6,'A'); 31 | INSERT INTO SEMSEC VALUES ('CSE6B', 6,'B'); 32 | INSERT INTO SEMSEC VALUES ('CSE6C', 6,'C'); 33 | INSERT INTO SEMSEC VALUES ('CSE5A', 5,'A'); 34 | INSERT INTO SEMSEC VALUES ('CSE5B', 5,'B'); 35 | INSERT INTO SEMSEC VALUES ('CSE5C', 5,'C'); 36 | INSERT INTO SEMSEC VALUES ('CSE4A', 4,'A'); 37 | INSERT INTO SEMSEC VALUES ('CSE4B', 4,'B'); 38 | INSERT INTO SEMSEC VALUES ('CSE4C', 4,'C'); 39 | INSERT INTO SEMSEC VALUES ('CSE3A', 3,'A'); 40 | INSERT INTO SEMSEC VALUES ('CSE3B', 3,'B'); 41 | INSERT INTO SEMSEC VALUES ('CSE3C', 3,'C'); 42 | INSERT INTO SEMSEC VALUES ('CSE2A', 2,'A'); 43 | INSERT INTO SEMSEC VALUES ('CSE2B', 2,'B'); 44 | INSERT INTO SEMSEC VALUES ('CSE2C', 2,'C'); 45 | INSERT INTO SEMSEC VALUES ('CSE1A', 1,'A'); 46 | INSERT INTO SEMSEC VALUES ('CSE1B', 1,'B'); 47 | INSERT INTO SEMSEC VALUES ('CSE1C', 1,'C'); 48 | 49 | SELECT * FROM SEMSEC; 50 | 51 | --------------------------------------- 52 | 53 | --Inserting records into CLASS table 54 | 55 | INSERT INTO CLASS VALUES ('1BI13CS020','CSE8A'); 56 | INSERT INTO CLASS VALUES ('1BI13CS062','CSE8A'); 57 | INSERT INTO CLASS VALUES ('1BI13CS066','CSE8B'); 58 | INSERT INTO CLASS VALUES ('1BI15CS101','CSE8C'); 59 | INSERT INTO CLASS VALUES ('1BI14CS010','CSE7A'); 60 | INSERT INTO CLASS VALUES ('1BI14CS025','CSE7A'); 61 | INSERT INTO CLASS VALUES ('1BI14CS032','CSE7A'); 62 | INSERT INTO CLASS VALUES ('1BI15CS011','CSE4A'); 63 | INSERT INTO CLASS VALUES ('1BI15CS029','CSE4A'); 64 | INSERT INTO CLASS VALUES ('1BI15CS045','CSE4B'); 65 | INSERT INTO CLASS VALUES ('1BI15CS091','CSE4C'); 66 | INSERT INTO CLASS VALUES ('1BI16CS045','CSE3A'); 67 | INSERT INTO CLASS VALUES ('1BI16CS088','CSE3B'); 68 | INSERT INTO CLASS VALUES ('1BI16CS122','CSE3C'); 69 | 70 | SELECT * FROM CLASS; 71 | 72 | ------------------------------------- 73 | 74 | --Inserting records into SUBJECT table 75 | 76 | INSERT INTO SUBJECT VALUES ('10CS81','ACA', 8, 4); 77 | INSERT INTO SUBJECT VALUES ('10CS82','SSM', 8, 4); 78 | INSERT INTO SUBJECT VALUES ('10CS83','NM', 8, 4); 79 | INSERT INTO SUBJECT VALUES ('10CS84','CC', 8, 4); 80 | INSERT INTO SUBJECT VALUES ('10CS85','PW', 8, 4); 81 | INSERT INTO SUBJECT VALUES ('10CS71','OOAD', 7, 4); 82 | INSERT INTO SUBJECT VALUES ('10CS72','ECS', 7, 4); 83 | INSERT INTO SUBJECT VALUES ('10CS73','PTW', 7, 4); 84 | INSERT INTO SUBJECT VALUES ('10CS74','DWDM', 7, 4); 85 | INSERT INTO SUBJECT VALUES ('10CS75','JAVA', 7, 4); 86 | INSERT INTO SUBJECT VALUES ('10CS76','SAN', 7, 4); 87 | INSERT INTO SUBJECT VALUES ('15CS51','ME', 5, 4); 88 | INSERT INTO SUBJECT VALUES ('15CS52','CN', 5, 4); 89 | INSERT INTO SUBJECT VALUES ('15CS53','DBMS', 5, 4); 90 | INSERT INTO SUBJECT VALUES ('15CS54','ATC', 5, 4); 91 | INSERT INTO SUBJECT VALUES ('15CS55','JAVA', 5, 3); 92 | INSERT INTO SUBJECT VALUES ('15CS56','AI', 5, 3); 93 | INSERT INTO SUBJECT VALUES ('15CS41','M4', 4, 4); 94 | INSERT INTO SUBJECT VALUES ('15CS42','SE', 4, 4); 95 | INSERT INTO SUBJECT VALUES ('15CS43','DAA', 4, 4); 96 | INSERT INTO SUBJECT VALUES ('15CS44','MPMC', 4, 4); 97 | INSERT INTO SUBJECT VALUES ('15CS45','OOC', 4, 3); 98 | INSERT INTO SUBJECT VALUES ('15CS46','DC', 4, 3); 99 | INSERT INTO SUBJECT VALUES ('15CS31','M3', 3, 4); 100 | INSERT INTO SUBJECT VALUES ('15CS32','ADE', 3, 4); 101 | INSERT INTO SUBJECT VALUES ('15CS33','DSA', 3, 4); 102 | INSERT INTO SUBJECT VALUES ('15CS34','CO', 3, 4); 103 | INSERT INTO SUBJECT VALUES ('15CS35','USP', 3, 3); 104 | INSERT INTO SUBJECT VALUES ('15CS36','DMS', 3, 3); 105 | 106 | SELECT * FROM SUBJECT; 107 | 108 | ---------------------------------------- 109 | 110 | --Inserting records into IAMARKS table 111 | 112 | INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VALUES ('1BI15CS101','10CS81','CSE8C', 15, 16, 18); 113 | INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VALUES ('1BI15CS101','10CS82','CSE8C', 12, 19, 14); 114 | INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VALUES ('1BI15CS101','10CS83','CSE8C', 19, 15, 20); 115 | INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VALUES ('1BI15CS101','10CS84','CSE8C', 20, 16, 19); 116 | INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VALUES ('1BI15CS101','10CS85','CSE8C', 15, 15, 12); 117 | 118 | SELECT * FROM IAMARKS; 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | -------------------------------------------------------------------------------- /DBMS-04-College Database/College-Queries.sql: -------------------------------------------------------------------------------- 1 | 2 | --List all the student details studying in fourth semester ‘C’ section. 3 | 4 | SELECT S.*, SS.SEM, SS.SEC 5 | FROM STUDENT S, SEMSEC SS, CLASS C 6 | WHERE S.USN = C.USN AND 7 | SS.SSID = C.SSID AND 8 | SS.SEM = 4 AND SS.SEC='C'; 9 | 10 | ---------------------------------------- 11 | 12 | --Compute the total number of male and female students in each semester and in each section. 13 | 14 | SELECT SS.SEM, SS.SEC, S.GENDER, COUNT(S.GENDER) AS COUNT 15 | FROM STUDENT S, SEMSEC SS, CLASS C 16 | WHERE S.USN = C.USN AND 17 | SS.SSID = C.SSID 18 | GROUP BY SS.SEM, SS.SEC, S.GENDER 19 | ORDER BY SEM; 20 | 21 | ---------------------------------------- 22 | 23 | --Create a view of Test1 marks of student USN ‘1BI15CS101’ in all Courses. 24 | 25 | CREATE VIEW STUDENT_TEST1_MARKS_V 26 | AS 27 | SELECT TEST1, SUBCODE 28 | FROM IAMARKS 29 | WHERE USN = '1BI15CS101'; 30 | 31 | SELECT * FROM STUDENT_TEST1_MARKS_V; 32 | 33 | ---------------------------------------- 34 | 35 | --Calculate the FinalIA (average of best two test marks) and update the corresponding table for all students. 36 | 37 | DELIMITER // 38 | CREATE PROCEDURE AVG_MARKS() 39 | BEGIN 40 | DECLARE C_A INTEGER; 41 | DECLARE C_B INTEGER; 42 | DECLARE C_C INTEGER; 43 | DECLARE C_SUM INTEGER; 44 | DECLARE C_AVG INTEGER; 45 | DECLARE C_USN VARCHAR(10); 46 | DECLARE C_SUBCODE VARCHAR(8); 47 | DECLARE C_SSID VARCHAR(5); 48 | 49 | DECLARE C_IAMARKS CURSOR FOR 50 | SELECT GREATEST(TEST1,TEST2) AS A, GREATEST(TEST1,TEST3) AS B, GREATEST(TEST3,TEST2) AS C, USN, SUBCODE, SSID 51 | FROM IAMARKS 52 | WHERE FINALIA IS NULL 53 | FOR UPDATE; 54 | 55 | OPEN C_IAMARKS; 56 | LOOP 57 | 58 | FETCH C_IAMARKS INTO C_A, C_B, C_C, C_USN, C_SUBCODE, C_SSID; 59 | 60 | IF (C_A != C_B) THEN 61 | SET C_SUM=C_A+C_B; 62 | ELSE 63 | SET C_SUM=C_A+C_C; 64 | END IF; 65 | 66 | SET C_AVG=C_SUM/2; 67 | 68 | UPDATE IAMARKS SET FINALIA = C_AVG 69 | WHERE USN = C_USN AND SUBCODE = C_SUBCODE AND SSID = C_SSID; 70 | 71 | END LOOP; 72 | CLOSE C_IAMARKS; 73 | END; 74 | // 75 | 76 | 77 | CALL AVG_MARKS(); 78 | 79 | SELECT * FROM IAMARKS; 80 | 81 | -------------------------------------------- 82 | 83 | -- Categorize students based on the following criterion: 84 | -- If FinalIA = 17 to 20 then CAT = ‘Outstanding’ 85 | -- If FinalIA = 12 to 16 then CAT = ‘Average’ 86 | -- If FinalIA< 12 then CAT = ‘Weak’ 87 | -- Give these details only for 8th semester A, B, and C section students. 88 | 89 | SELECT S.USN,S.SNAME,S.ADDRESS,S.PHONE,S.GENDER, IA.SUBCODE, 90 | (CASE 91 | WHEN IA.FINALIA BETWEEN 17 AND 20 THEN 'OUTSTANDING' 92 | WHEN IA.FINALIA BETWEEN 12 AND 16 THEN 'AVERAGE' 93 | ELSE 'WEAK' 94 | END) AS CAT 95 | FROM STUDENT S, SEMSEC SS, IAMARKS IA, SUBJECT SUB 96 | WHERE S.USN = IA.USN AND 97 | SS.SSID = IA.SSID AND 98 | SUB.SUBCODE = IA.SUBCODE AND 99 | SUB.SEM = 8; 100 | 101 | -------------------------------------------------------------------------------- /DBMS-05-Company Database/Company-Create Table Scripts.sql: -------------------------------------------------------------------------------- 1 | --Create Table DEPARTMENT with PRIMARY KEY as DNO 2 | 3 | CREATE TABLE DEPARTMENT 4 | (DNO VARCHAR(20) PRIMARY KEY, 5 | DNAME VARCHAR(20), 6 | MGR_SSN VARCHAR(20), 7 | MGR_START_DATE DATE); 8 | 9 | DESC DEPARTMENT; 10 | 11 | ---------------------------------- 12 | 13 | --Create Table EMPLOYEE with PRIMARY KEY as SSN 14 | 15 | CREATE TABLE EMPLOYEE 16 | (SSN VARCHAR(20) PRIMARY KEY, 17 | NAME VARCHAR(20), 18 | ADDRESS VARCHAR(20), 19 | SEX CHAR(1), 20 | SALARY INTEGER, 21 | SUPERSSN VARCHAR(20), 22 | DNO VARCHAR(20), 23 | FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN), 24 | FOREIGN KEY (DNO) REFERENCES DEPARTMENT (DNO)); 25 | 26 | DESC EMPLOYEE; 27 | 28 | ---------------------------------- 29 | 30 | -- ADD FOREIGN KEY Constraint to DEPARTMENT table 31 | 32 | ALTER TABLE DEPARTMENT 33 | ADD FOREIGN KEY (MGR_SSN) REFERENCES EMPLOYEE(SSN); 34 | 35 | ---------------------------------- 36 | 37 | --Create Table DLOCATION with PRIMARY KEY as DNO and DLOC and FOREIGN KEY DNO referring DEPARTMENT table 38 | 39 | CREATE TABLE DLOCATION 40 | (DLOC VARCHAR(20), 41 | DNO VARCHAR(20), 42 | FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNO), 43 | PRIMARY KEY (DNO, DLOC)); 44 | 45 | DESC DLOCATION; 46 | 47 | ---------------------------------- 48 | 49 | --Create Table PROJECT with PRIMARY KEY as PNO and FOREIGN KEY DNO referring DEPARTMENT table 50 | 51 | CREATE TABLE PROJECT 52 | (PNO INTEGER PRIMARY KEY, 53 | PNAME VARCHAR(20), 54 | PLOCATION VARCHAR(20), 55 | DNO VARCHAR(20), 56 | FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNO)); 57 | 58 | DESC PROJECT; 59 | 60 | ---------------------------------- 61 | 62 | --Create Table WORKS_ON with PRIMARY KEY as PNO and SSN and FOREIGN KEY SSN and PNO referring EMPLOYEE and PROJECT table 63 | 64 | CREATE TABLE WORKS_ON 65 | (HOURS INTEGER, 66 | SSN VARCHAR(20), 67 | PNO INTEGER, 68 | FOREIGN KEY (SSN) REFERENCES EMPLOYEE(SSN), 69 | FOREIGN KEY (PNO) REFERENCES PROJECT(PNO), 70 | PRIMARY KEY (SSN, PNO)); 71 | 72 | DESC WORKS_ON; 73 | 74 | ---------------------------------- 75 | 76 | -------------------------------------------------------------------------------- /DBMS-05-Company Database/Company-Insert Scripts.sql: -------------------------------------------------------------------------------- 1 | --Inserting records into EMPLOYEE table 2 | 3 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 4 | ('ABC01','BEN SCOTT','BANGALORE','M', 450000); 5 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 6 | ('ABC02','HARRY SMITH','BANGALORE','M', 500000); 7 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 8 | ('ABC03','LEAN BAKER','BANGALORE','M', 700000); 9 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 10 | ('ABC04','MARTIN SCOTT','MYSORE','M', 500000); 11 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 12 | ('ABC05','RAVAN HEGDE','MANGALORE','M', 650000); 13 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 14 | ('ABC06','GIRISH HOSUR','MYSORE','M', 450000); 15 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 16 | ('ABC07','NEELA SHARMA','BANGALORE','F', 800000); 17 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 18 | ('ABC08','ADYA KOLAR','MANGALORE','F', 350000); 19 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 20 | ('ABC09','PRASANNA KUMAR','MANGALORE','M', 300000); 21 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 22 | ('ABC10','VEENA KUMARI','MYSORE','M', 600000); 23 | INSERT INTO EMPLOYEE (SSN, NAME, ADDRESS, SEX, SALARY) VALUES 24 | ('ABC11','DEEPAK RAJ','BANGALORE','M', 500000); 25 | 26 | SELECT * FROM EMPLOYEE; 27 | 28 | ---------------------------------- 29 | 30 | --Inserting records into DEPARTMENT table 31 | 32 | INSERT INTO DEPARTMENT VALUES ('1','ACCOUNTS','ABC09', '2016-01-03'); 33 | INSERT INTO DEPARTMENT VALUES ('2','IT','ABC11', '2017-02-04'); 34 | INSERT INTO DEPARTMENT VALUES ('3','HR','ABC01', '2016-04-05'); 35 | INSERT INTO DEPARTMENT VALUES ('4','HELPDESK', 'ABC10', '2017-06-03'); 36 | INSERT INTO DEPARTMENT VALUES ('5','SALES','ABC06', '2017-01-08'); 37 | 38 | SELECT * FROM DEPARTMENT; 39 | 40 | ---------------------------------- 41 | 42 | --Updating EMPLOYEE records 43 | 44 | UPDATE EMPLOYEE SET 45 | SUPERSSN=NULL, DNO='3' 46 | WHERE SSN='ABC01'; 47 | 48 | UPDATE EMPLOYEE SET 49 | SUPERSSN='ABC03', DNO='5' 50 | WHERE SSN='ABC02'; 51 | 52 | UPDATE EMPLOYEE SET 53 | SUPERSSN='ABC04', DNO='5' 54 | WHERE SSN='ABC03'; 55 | 56 | UPDATE EMPLOYEE SET 57 | SUPERSSN='ABC06', DNO='5' 58 | WHERE SSN='ABC04'; 59 | 60 | UPDATE EMPLOYEE SET 61 | DNO='5', SUPERSSN='ABC06' 62 | WHERE SSN='ABC05'; 63 | 64 | UPDATE EMPLOYEE SET 65 | DNO='5', SUPERSSN='ABC07' 66 | WHERE SSN='ABC06'; 67 | 68 | UPDATE EMPLOYEE SET 69 | DNO='5', SUPERSSN=NULL 70 | WHERE SSN='ABC07'; 71 | 72 | UPDATE EMPLOYEE SET 73 | DNO='1', SUPERSSN='ABC09' 74 | WHERE SSN='ABC08'; 75 | 76 | UPDATE EMPLOYEE SET 77 | DNO='1', SUPERSSN=NULL 78 | WHERE SSN='ABC09'; 79 | 80 | UPDATE EMPLOYEE SET 81 | DNO='4', SUPERSSN=NULL 82 | WHERE SSN='ABC10'; 83 | 84 | UPDATE EMPLOYEE SET 85 | DNO='2', SUPERSSN=NULL 86 | WHERE SSN='ABC11'; 87 | 88 | SELECT * FROM EMPLOYEE; 89 | 90 | ------------------------------- 91 | 92 | --Inserting records into DLOCATION table 93 | 94 | INSERT INTO DLOCATION VALUES ('BENGALURU', '1'); 95 | INSERT INTO DLOCATION VALUES ('BENGALURU', '2'); 96 | INSERT INTO DLOCATION VALUES ('BENGALURU', '3'); 97 | INSERT INTO DLOCATION VALUES ('MYSORE', '4'); 98 | INSERT INTO DLOCATION VALUES ('MYSORE', '5'); 99 | 100 | SELECT * FROM DLOCATION; 101 | 102 | -------------------------------- 103 | 104 | --Inserting records into PROJECT table 105 | 106 | INSERT INTO PROJECT VALUES (1000,'IOT','BENGALURU','5'); 107 | INSERT INTO PROJECT VALUES (1001,'CLOUD','BENGALURU','5'); 108 | INSERT INTO PROJECT VALUES (1002,'BIGDATA','BENGALURU','5'); 109 | INSERT INTO PROJECT VALUES (1003,'SENSORS','BENGALURU','3'); 110 | INSERT INTO PROJECT VALUES (1004,'BANK MANAGEMENT','BENGALURU','1'); 111 | INSERT INTO PROJECT VALUES (1005,'SALARY MANAGEMENT','BANGALORE','1'); 112 | INSERT INTO PROJECT VALUES (1006,'OPENSTACK','BENGALURU','4'); 113 | INSERT INTO PROJECT VALUES (1007,'SMART CITY','BENGALURU','2'); 114 | 115 | SELECT * FROM PROJECT; 116 | 117 | ------------------------------ 118 | 119 | --Inserting records into WORKS_ON table 120 | 121 | INSERT INTO WORKS_ON VALUES (4, 'ABC02', 1000); 122 | INSERT INTO WORKS_ON VALUES (6, 'ABC02', 1001); 123 | INSERT INTO WORKS_ON VALUES (8, 'ABC02', 1002); 124 | INSERT INTO WORKS_ON VALUES (10,'ABC03', 1000); 125 | INSERT INTO WORKS_ON VALUES (3, 'ABC05', 1000); 126 | INSERT INTO WORKS_ON VALUES (4, 'ABC06', 1001); 127 | INSERT INTO WORKS_ON VALUES (5, 'ABC07', 1002); 128 | INSERT INTO WORKS_ON VALUES (6, 'ABC04', 1002); 129 | INSERT INTO WORKS_ON VALUES (7, 'ABC01', 1003); 130 | INSERT INTO WORKS_ON VALUES (5, 'ABC08', 1004); 131 | INSERT INTO WORKS_ON VALUES (6, 'ABC09', 1005); 132 | INSERT INTO WORKS_ON VALUES (4, 'ABC10', 1006); 133 | INSERT INTO WORKS_ON VALUES (10,'ABC11', 1007); 134 | 135 | SELECT * FROM WORKS_ON; 136 | 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /DBMS-05-Company Database/Company-Queries.sql: -------------------------------------------------------------------------------- 1 | --Make a list of all project numbers for projects that involve an employee whose last name is ‘Scott’, either as a worker or as a manager of the department that controls the project. 2 | 3 | SELECT DISTINCT P.PNO 4 | FROM PROJECT P, DEPARTMENT D, EMPLOYEE E 5 | WHERE E.DNO=D.DNO 6 | AND D.MGR_SSN=E.SSN 7 | AND E.NAME LIKE '%SCOTT' 8 | UNION 9 | SELECT DISTINCT P1.PNO 10 | FROM PROJECT P1, WORKS_ON W, EMPLOYEE E1 11 | WHERE P1.PNO=W.PNO 12 | AND E1.SSN=W.SSN 13 | AND E1.NAME LIKE '%SCOTT'; 14 | 15 | --Show the resulting salaries if every employee working on the ‘IoT’ project is given a 10 percent raise. 16 | 17 | SELECT E.NAME, 1.1*E.SALARY AS INCR_SAL 18 | FROM EMPLOYEE E, WORKS_ON W, PROJECT P 19 | WHERE E.SSN=W.SSN 20 | AND W.PNO=P.PNO 21 | AND P.PNAME='IOT'; 22 | 23 | --Find the sum of the salaries of all employees of the ‘Accounts’ department, as well as the maximum salary, the minimum salary, and the average salary in this department 24 | 25 | SELECT SUM(E.SALARY), MAX(E.SALARY), MIN(E.SALARY), AVG(E.SALARY) 26 | FROM EMPLOYEE E, DEPARTMENT D 27 | WHERE E.DNO=D.DNO 28 | AND D.DNAME='ACCOUNTS'; 29 | 30 | --Retrieve the name of each employee who works on all the projects controlled by department number 5 (use NOT EXISTS operator). 31 | 32 | SELECT E.NAME 33 | FROM EMPLOYEE E 34 | WHERE NOT EXISTS(SELECT PNO FROM PROJECT WHERE DNO='5' AND PNO NOT IN (SELECT 35 | PNO FROM WORKS_ON 36 | WHERE E.SSN=SSN)); 37 | 38 | --For each department that has more than five employees, retrieve the department number and the number of its employees who are making more than Rs. 6,00,000. 39 | 40 | SELECT D.DNO, COUNT(*) 41 | FROM DEPARTMENT D, EMPLOYEE E 42 | WHERE D.DNO=E.DNO 43 | AND E.SALARY > 600000 44 | AND D.DNO IN (SELECT E1.DNO 45 | FROM EMPLOYEE E1 46 | GROUP BY E1.DNO 47 | HAVING COUNT(*)>5) 48 | GROUP BY D.DNO; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 teamkaliyona 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vtu-dbms-lab 2 | 3 | These files are part of the **VTU DBMS Lab Tutorial** offered at [kaliyona.com](https://www.kaliyona.com) 4 | 5 | Please enroll for the course and upon succesful completion you will be receiving a course completion certificate. 6 | 7 | Course Link: [Click Here](https://kaliyona.com/courses/vtu-dbms-lab/) 8 | 9 | Course Author: **Prathima Deepak** 10 | --------------------------------------------------------------------------------