0% found this document useful (0 votes)
120 views

DBMS LAB MANUAL Modified-1

This document provides the schema for several databases - a library database, order database, movie database, college database, and company database. For each database, it lists some sample SQL queries to demonstrate basic CRUD operations, joins, views, indexing and other functionality. It also includes sample table structures and data to develop and test the SQL queries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
120 views

DBMS LAB MANUAL Modified-1

This document provides the schema for several databases - a library database, order database, movie database, college database, and company database. For each database, it lists some sample SQL queries to demonstrate basic CRUD operations, joins, views, indexing and other functionality. It also includes sample table structures and data to develop and test the SQL queries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 43

DATABASE MANAGEMENT

SYSTEMS LAB MANUAL


Sl. Program List
No
Consider the following schema for a Library Database:

BOOK (Book_id, Title, Publisher_Name, Pub_Year)


BOOK_AUTHORS (Book_id, Author_Name)
PUBLISHER (Name, Address, Phone)
BOOK_COPIES (Book_id, Branch_id, No-of_Copies)
BOOK_LENDING (Book_id, Branch_id, Card_No, Date_Out, Due_Date)
LIBRARY_BRANCH (Branch_id, Branch_Name, Address)

1 Write SQL queries to:


1. Retrieve the details of all books in the library – id, title, name of publisher, authors,
number of copies in each branch, etc.
2. Get the particular borrowers who have borrowed more than 3 books from Jan 2017 to
Jun 2017.
3. Delete a book in BOOK table and Update the contents of other tables using DML
statements.
4. Create the view for BOOK table based on year of publication and demonstrate its
working with a simple query.
5. Create a view of all books and its number of copies which are currently available in the
Library.
6. Demonstrate the usage of view creation

Consider the following schema for Order Database:

SALESMAN (Salesman_id, Name, City, Commission)


CUSTOMER (Customer_id, Cust_Name, City, Grade,Salesman_id)
ORDERS (Ord_No, Purchase_Amt, Ord_Date, Customer_id, Salesman_id)

Write SQL queries to:


1. Count the customers with grades above Bangalor’s average.
2 2. Find the name and numbers of all salesmen who had more than one customer.
3. List all salesmen and indicate those who have and don’t have customers in their cities
(Use UNION operation).
4. Create a view that finds the salesman who has the customer with the highest
order of a day.
5. Demonstrate the DELETE operation by removing salesman with id 1000. All his orders
must also be deleted.
6. Create an index on (Customer (id)) to demonstrate the usage.

Consider the schema for Movie Database:


3
ACTOR (Act_id, Act_Name, Act_Gender) DIRECTOR (Dir_id, Dir_Name, Dir_Phone)
MOVIES (Mov_id, Mov_Title, Mov_Year, Mov_Lang, Dir_id)
MOVIE_CAST (Act_id, Mov_id, Role)
RATING (Mov_id, Rev_Stars)

Write SQL queries to


1. List the titles of all movies directed by ‘Hitchcock’.
2. Find the movie names where one or more actors acted in two or more movies.
3. List all actors who acted in a movie before 2000 and also in a movie after 2020 (use
JOIN operation).
4. Find the title of movies and number of stars for each movie that has at least one rating
and find the highest number of stars that movie received. Sort the result by movie title.
5. Update rating of all movies directed by ‘Steven Spielberg’ to 5.

Consider the schema for College Database:

STUDENT (USN, SName, Address, Phone, Gender)


SEMSEC (SSID, Sem, Sec)
CLASS (USN, SSID)
SUBJECT (Subcode, Title, Sem, Credits)
IAMARKS (USN, Subcode, SSID, Test1, Test2, Test3, FinalIA)

Write SQL queries to


1. List all the student details studying in fifth semester ‘B’ section.
4 2. Compute the total number of male and female students in each semester and in each
section.
3. Create a view of Event 1 marks of student USN ‘01JST IS ’ in all subjects.
4. Calculate the Final IA (average of best two test marks) and update the corresponding
table for all students.
5. Categorize students based on the following criterion:
If Final IA = 17 to 20 then CAT =‘Outstanding’
If Final IA = 12 to 16 then CAT = ‘Average’
If Final IA< 12 then CAT = ‘Weak’
Give these details only for 8th semester A, B, and C section students.

Consider the schema for Company Database:

EMPLOYEE (SSN, Name, Address, Sex, Salary, SuperSSN, DNo)


DEPARTMENT (DNo, DName, MgrSSN, MgrStartDate)
DLOCATION (DNo,DLoc)
PROJECT (PNo, PName, PLocation, DNo)
WORKS_ON (SSN, PNo, Hours)
Write SQL queries to

5 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. Show the resulting salaries if every employee working on the ‘IoT’ project is given a 10
percent raise.
3. 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
4. Retrieve the name of each employee who works on all the projects controlled by
department number. (use NOT EXISTS operator).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.
Consider the schema of the call detail table to partitioned primary index:

CREATE TABLE calldetail (phone_number DECIMAL(10) NOT NULL, call_start


TIMESTAMP, call_durationINTEGER, call_description VARCHAR(30))
6
PRIMARY INDEX (phone_number, call_start);

Demonstrate the query against this table be optimized by partitioning its primary index
using partitioning techniques.
1. Consider the following schema for a Library Database:
BOOK (Book_id, Title, Publisher_Name, Pub_Year)
BOOK_AUTHORS (Book_id, Author_Name)
PUBLISHER (Name, Address, Phone)
BOOK_COPIES (Book_id, Branch_id, No-of_Copies)
BOOK_LENDING (Book_id, Branch_id, Card_No, Date_Out, Due_Date)
LIBRARY_BRANCH (Branch_id, Branch_Name, Address)

Write SQL queries to:


1. Retrieve the details of all books in the library – id, title, name of publisher, authors, number of copies in each
branch, etc.
2. Get the particular borrowers who have borrowed more than 3 books from Jan 2020 to Jun 2022.
3. Delete a book in BOOK table and Update the contents of other tables using DML statements.
4. Create the view for BOOK table based on year of publication and demonstrate its working with a simple
query.
5. Create a view of all books and its number of copies which are currently available in the Library.
6. Demonstrate the usage of view creation
Table Creation:

PUBLISHER

SQL> CREATE TABLE PUBLISHER (


NAME VARCHAR (18) PRIMARY KEY,
ADDRESS VARCHAR (10),
PHONE VARCHAR (10));

Table created.
BOOK
SQL> CREATE TABLE BOOK (
BOOK_ID INTEGER PRIMARY KEY,
TITLE VARCHAR (20),
PUBLISHER_NAME VARCHAR (20) REFERENCES PUBLISHER(NAME)ON DELETE
CASADE,
PUB_YEAR INT (4));

Table created.
BOOK_AUTHORS

SQL> CREATE TABLE BOOK_AUTHORS (


BOOK_ID INTEGER REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE,
AUTHOR_NAME VARCHAR (20),
PRIMARY KEY(BOOK_ID));
Table created.
LIBRARY_BRANCH

SQL> CREATE TABLE LIBRARY_BRANCH(


BRANCH_ID INTEGER PRIMARY KEY,
BRANCH_NAME VARCHAR(18),
ADDRESS VARCHAR(15));

Table created.

BOOK_COPIES

SQL> CREATE TABLE BOOK_COPIES (


BOOK_ID INTEGER REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE,
BRANCH_ID INTEGER REFERENCES LIBRARY_BRANCH(BRANCH_ID) ON DELETE
CASCADE,
NO_OF_COPIES INTEGER, PRIMARY KEY (BOOK_ID, BRANCH_ID));

Table created

BOOK_LENDING

SQL> CREATE TABLE BOOK_LENDING (


BOOK_ID INTEGER REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE,
BRANCH_ID INTEGER REFERENCES LIBRARY_BRANCH(BRANCH_ID) ON DELETE
CASCADE,
CARD_NO INTEGER,
DATE_OUT DATE,
DUE_DATE DATE, PRIMARY KEY (BOOK_ID, BRANCH_ID, CARD_NO));

Table created
Values for tables:

PUBLISHER

SQL>INSERT INTO PUBLISHER VALUES('PEARSON','BANGALORE','9875462530');

SQL> INSERT INTO PUBLISHER VALUES('MCGRAW','NEWDELHI','7845691234');

SQL> INSERT INTO PUBLISHER VALUES('SAPNA','BANGALORE','7845963210');

BOOK

SQL> INSERT INTO BOOK VALUES(1111,'SE','PEARSON',2005);

SQL>INSERT INTO BOOK VALUES(2222,'DBMS','MCGRAW',2004);

SQL> INSERT INTO BOOK VALUES(3333,'ANOTOMY','PEARSON',2010);

SQL> INSERT INTO BOOK VALUES(4444,'ENCYCLOPEDIA','SAPNA',2010);

BOOK_AUTHORS

SQL INSERT INT BOOK_AUTHOR VALUES(1111,'SOMMERVILLE');


> O S
SQL INSERT INT BOOK_AUTHOR VALUES(2222,'NAVATHE');
> O S
SQL INSERT INT BOOK_AUTHOR VALUES(3333,'HENRY GRAY');
> O S
SQL INSERT INT BOOK_AUTHOR VALUES(4444,'THOMAS');
> O S

LIBRARY_BRANCH

SQL INSERT INT LIBRARY_BRAN VALUES(11,'CENTRAL TECHNICAL','MG ROAD');


> O CH
SQL INSERT INT LIBRARY_BRAN VALUES(22,'MEDICAL','BH ROAD');
> O CH
SQL INSERT INT LIBRARY_BRAN VALUES(33,'CHILDREN','SS PURAM');
> O CH
SQL INSERT INT LIBRARY_BRAN VALUES(44,'SECRETARIAT','SIRAGATE');
> O CH
SQL INSERT INT LIBRARY_BRAN VALUES(55,'GENERAL','JAYANAGAR');
> O CH
BOOK_COPIES

SQL INSERT INT BOOK_COPIE VALUES(1111,11,5);


> O S
SQL INSERT INT BOOK_COPIE VALUES(3333,22,6);
> O S
SQL INSERT INT BOOK_COPIE VALUES(4444,33,10);
> O S
SQL INSERT INT BOOK_COPIE VALUES(2222,11,12);
> O S
SQL INSERT INT BOOK_COPIE VALUES(4444,55,3);
> O S

BOOK_LENDING

SQL INSER INT BOOK_LENDI VALUES(2222,11,1, '2017-01-10','2017-08-20');


> T O NG
SQL INSER INT BOOK_LENDI VALUES(3333,22,2, '2017-07-09','2017-08-12');
> T O NG
SQL INSER INT BOOK_LENDI VALUES(4444,55,1, '2017-04-11','2017-08-09');
> T O NG
SQL INSER INT BOOK_LENDI VALUES(2222,11,5, '2017-08-09','2017-08-19');
> T O NG
SQL INSER INT BOOK_LENDI VALUES(4444,33,1, '2017-06-08','2017-08-15');
> T O NG
SQL INSER INT BOOK_LENDI VALUES(1111,11,1, '2017-05-12','2017-06-10');
> T O NG
SQL INSER INT BOOK_LENDI VALUES(3333,22,1, '2017-07-10','2017-07-15');
> T O NG

SQL> SELECT * FROM BOOK;

BOOK_ID TITLE PUBLISHER_NAME PUB_YEAR

1111 SE PEARSON 2005


2222 DBMS MCGRAW 2004
3333 ANOTOMY PEARSON 2010
4444 ENCYCLOPEDIA SAPNA 2010

4 rows selected.
SQL> SELECT * FROM BOOK_AUTHORS;
BOOK_ID AUTHOR_NAME

1111 SOMMERVILLE
2222 NAVATHE
3333 HENRY GRAY
4444 THOMAS

4 rows selected.
SQL>SELE * FROM
CT PUBLISHER;
PHONE
NAME ADDRESS
PEARSON BANGALORE 987546253
0
MCGRAW NEWDELHI 784569123
4
SAPNA BANGALORE 784596321
0
3 rows selected.

SQL> SELECT * FROM BOOK_COPIES;

1111 11 5
3333 22 6
4444 33 10
2222 11 12
4444 55 3
BOOK_ID BRANCH_ID NO_OF_COPIES

5 rows selected.
SQL> SELECT * FROM BOOK_LENDING;

BOOK_ID BRANCH_ID CARD_NO DATE_OUT DUE_DATE

2222 11 1 10-JAN- 20-AUG-


17 17
3333 22 2 09-JUL-17 12-AUG-
17
4444 55 1 11-APR-17 09-AUG-
17
2222 11 5 09-AUG-17 19-AUG-
17
4444 33 1 10-JUL-17 15-AUG-
17
1111 11 1 12-MAY-17 10-JUN-
17
3333 22 1 10-JUL-17 15-JUL-
17

7 rows selected.
SQL> SELECT * FROM LIBRARY_BRANCH;

BRANCH_ID BRANCH_NAME ADDRESS

11 CENTRAL TECHNICAL MG ROAD


22 MEDICAL BH ROAD
33 CHILDREN SS PURAM
44 SECRETARIAT SIRAGATE
55 GENERAL JAYANAGAR

5 rows selected.
Queries:

1) Retrieve details of all books in the library – id, title, name of publisher, authors, number of copies in each
branch, etc.

SELECT LB. BRANCH_NAME, B. BOOK_ID, TITLE, PUBLISHER_NAME, AUTHOR_NAME,


NO_OF_COPIES FROM BOOK B, BOOK_AUTHORS BA, BOOK_COPIES BC,
LIBRARY_BRANCH LB WHERE B. BOOK_ID = BA. BOOK_ID AND BA. BOOK_ID = BC.
BOOK_ID AND BC. BRANCH_ID = LB. BRANCH_ID GROUP BY LB. BRANCH_NAME, B.
BOOK_ID, TITLE, PUBLISHER_NAME, AUTHOR_NAME, NO_OF_COPIES;

BOOK_ PUBLISHER_NA AUTHOR_ NO_OF_


BRANCH_NAME TITLE
ID ME NAME COPIES
ENCYCLOPEDI
GENERAL 4444 SAPNA THOMAS 3
A
HENRY
MEDICAL 3333 ANOTOMY PEARSON 6
GRAY
ENCYCLOPEDI
CHILDREN 4444 SAPNA THOMAS 10
A
CENTRAL SOMMERVI
1111 SE PEARSON 5
TECHNICAL LLE
CENTRAL
2222 DBMS MCGRAW NAVATHE 12
TECHNICAL

2) Get the particulars of borrowers who have borrowed more than 3 books, but from Jan 2017 to Jun 2017.

SELECT CARD_NO FROM BOOK_LENDING WHERE DATE_OUT BETWEEN '01-JAN-2017' AND


'30-JUN-2017'GROUP BY CARD_NOHAVING COUNT (*) > 3;

CARD_NO
1

3) Delete a book in BOOK table. Update the contents of other tables to reflect this data manipulation
operation.

DELETE FROM BOOK WHERE BOOK_ID = '3333';


1 row deleted.

SQL> SELECT * FROM BOOK;

BOOK_ID TITLE PUBLISHER_NAME PUB_YE


AR
1111 SE PEARSON 2005
2222 DBMS MCGRAW 2004
4444 ENCYCLOPEDIA SAPNA 2010
SQL> SELECT * FROM BOOK_COPIES;

BOOK_ID BRANCH_ID NO_OF_COPIES


1111

11

SQL> SELECT * FROM BOOK_LENDING;

BOOK_ID BRANCH_ID CARD_NO DATE_OUT DUE_DATE

2222 11 1 10-JAN- 20-AUG-17


17
4444 55 1 11-APR- 09-AUG-17
17
2222 11 5 09-AUG- 19-AUG-17
17
4444 33 1 10-JUN- 15-AUG-17
17
1111 11 1 12-MAY- 10-JUN-17
17

4) Create the view for BOOK table based on year of publication and demonstrate its working
with a simple query.

CREATE VIEW V_PUBLICATION AS SELECT BOOK_ID, TITLE, PUBLISHER_NAME,


PUB_YEAR FROM BOOK ORDER BY PUB_YEAR;

View created.

SQL> SELECT * FROM V_ PUBLICATION ;


BOOK_ID TITLE PUBLISHER_NAME PUB_YEAR
2222 DBMS MCGRAW 2004
1111 SE PEARSON 2005
3333 ANOTOMY PEARSON 2010
4444 ENCYCLOPEDIA SAPNA 2010
5) Create a view of all books and its number of copies that are currently available in the Library.

CREATE VIEW BOOKS_AVAILABLE AS SELECT B. BOOK_ID, B. TITLE,C.NO_OF_COPIES FROM


LIBRARY_BRANCH L, BOOK B, BOOK_COPIES C WHERE B. BOOK_ID = C. BOOK_ID AND L.
BRANCH_ID=C.BRANCH_ID;

View created.

SQL> SELECT * FROM BOOKS_AVAILABLE;

BOOK_ID TITLE NO_OF_COPIES

1111 SE

5
3333 ANOTOMY

6
4444 ENCYCLOPEDIA
2) Consider the following schema for Order Database:
SALESMAN (Salesman_id, Name, City, Commission)
CUSTOMER (Customer_id, Cust_Name, City, Grade,Salesman_id)
ORDERS (Ord_No, Purchase_Amt, Ord_Date, Customer_id, Salesman_id)

Write SQL queries to:


1. Count the customers with grades above Bangalor’s average.
2. Find the name and numbers of all salesmen who had more than one customer.
3. List all salesmen and indicate those who have and don’t have customers in their cities
(Use UNION operation).
4. Create a view that finds the salesman who has the customer with the highest order of a day.
5. Demonstrate the DELETE operation by removing salesman with id 1000. All his orders must also
be deleted.
6. Create an index on (Customer (id)) to demonstrate the usage.

Table Creation:

SALESMAN

CREATE TABLE SALESMAN (

SALESMAN_ID INT(5) PRIMARY KEY,

NAME VARCHAR(10) NOT NULL,

CITY VARCHAR(15) NOT NULL,

COMMISSION INT(5));
Table created.

CUSTOMER

CREATE TABLE CUSTOMER (


CUSTOMER_ID INT(5) PRIMARY KEY,
CUST_NAME VARCHAR(10) NOT NULL,
CITY VARCHAR(10) NOT NULL,
GRADE INT(5) NOT NULL,
SALESMAN_ID INT(5),
FOREIGN KEY (SALESMAN _ID) REFERENCES
SALESMAN(SALESMAN_ID) ON DELETE SET NULL);

Table created.
ORDERS

CREATE TABLE ORDERS (


ORD_NO INT(5) PRIMARY KEY,
PURCHASE_AMT INTEGER NOT NULL,
ORD_DATE DATE NOT NULL,
CUSTOMER_ID INT(5) ,
SALESMAN_ID INT(5) ,
FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMER(CUSTOMER_ID),
FOREIGN KEY (SALESMAN_ID) REFERENCES SALESMAN(SALESMAN_ID) ON DELETE
CASCADE);

Table created.

Values for tables

INSERT INTO SALESMAN VALUES (1000,'RAJ','BENGALURU',50);


INSERT INTO SALESMAN VALUES (2000,'ASHWIN','TUMKUR',30);
INSERT INTO SALESMAN VALUES (3000,'BINDU','MUMBAI',40);
INSERT INTO SALESMAN VALUES (4000,'LAVANYA','BENGALURU',40);
INSERT INTO SALESMAN VALUES (5000,'ROHIT','MYSORE',60);

INSERT INTO CUSTOMER VALUES (11,'INFOSYS','BENGALURU',5,1000);


INSERT INTO CUSTOMER VALUES (22,'TCS','BENGALURU',4,2000);
INSERT INTO CUSTOMER VALUES (33,'WIPRO','MYSORE',7,1000);
INSERT INTO CUSTOMER VALUES (44,'TCS','MYSORE',6,2000);
INSERT INTO CUSTOMER VALUES (55,'ORACLE','TUMKUR',3,3000);

INSERT INTO ORDERS VALUES (1,200000,'12-04-16',11,1000);


INSERT INTO ORDERS VALUES (2,300000,'12-04-16',11,2000);
INSERT INTO ORDERS VALUES (3,400000,'15-04-17',22,1000);
SELECT * FROM SALESMAN;

SALESMAN_ID NAME CITY COMMISSION


1000 RAJ BENGALURU 50
2000 TUMKUR 30
ASHWIN
3000 MUMBAI 40
BINDU
4000 BENGALURU 40
LAVANYA
5000 MYSORE 60
ROHIT

SELECT * FROM CUSTOMER;


CUSTOMER_ID CUST_NAME CITY GRADE SALESMAN_ID

11 INFOSYS BENGALUR 5 1000


U
22 TCS BENGALUR 4 2000
U
33 WIPRO MYSORE 7 1000
44 TCS MYSORE 6 2000
55 ORACLE TUMKUR 3 3000

SELECT * FROM ORDERS;

ORD_NO PURCHASE_AMT ORD_DATE CUSTOMER_ID SALESMAN_ID

1 200000 12-04-16 1 1000


1
2 300000 12-04-16 1 2000
1
3 400000 15-APR-17 2 1000
2

Queries:
1. Count the customers with grades above Bangalore’s average.

SELECT COUNT(CUSTOMER_ID) FROM CUSTOMER WHERE GRADE> (SELECT


AVG(GRADE)FROM CUSTOMERWHERE CITY LIKE '%BENGALURU');

COUNT(CUSTOMER_ID)

2. Find the name and numbers of all salesmen who had more than one customer.

SELECT NAME, COUNT(CUSTOMER_ID) FROM SALESMAN S, CUSTOMER C WHERE


S.SALESMAN_ID=C.SALESMAN_ID GROUP BY NAME HAVING COUNT(CUSTOMER_ID)>1 ;
NAME COUNT(CUSTOMER_ID)

ASHWIN 2
RAJ 2

3. List all salesmen and indicate those who have and don’t have customers in their cities (Use UNION
operation.)

(SELECT NAME FROM SALESMAN S, CUSTOMER C WHERE


S.SALESMAN_ID=C.SALESMAN_ID AND S.CITY = C. CITY)
UNION (SELECT NAME FROM SALESMAN WHERE SALESMAN_ID NOT IN (SELECT
S1.SALESMAN_ID FROM SALESMAN S1, CUSTOMER C1 WHERE S1.
SALESMAN_ID=C1.SALESMAN_ID AND S1.CITY=C1.CITY));

NAME

ASHWIN
BINDU
LAVANYARA
J
ROHIT

4. Create a view that finds the salesman who has the customer with the highest order of a day.

CREATE VIEW SALES_HIGHERODER AS SELECT SALESMAN_ID, PURCHASE_AMT FROM


ORDERS
WHERE PURCHASE_AMT= (SELECT MAX(O_PURCHASE_AMT) FROM ORDERS O
WHERE O.ORD_DATE='12-04-16');
View created.

SELECT * FROM SALES_HIGHERODER;


SALESMAN_ID PURCHASE_AMT

2000 300000
5. Demonstrate the DELETE operation by removing salesman with id 1000. All his orders must also be
deleted.

DELETE FROM SALESMAN WHERE SALESMAN_ID= 1000;

1 row deleted.
SELECT * FROM SALESMAN;

SALESMAN_ID NAME CITY COMMISSION


2000 ASHWIN TUMKUR30
3000 BINDU MUMBAI 40
4000 LAVANYA BENGALURU 40
5000 ROHIT MYSORE 60

SELECT * FROM CUSTOMER;

CUSTOMER_ID CUST_NAME CITY GRADE SALESMAN_ID

11 INFOSYS BENGALURU 5
22 TCS BENGALURU 4 2000
33 WIPRO MYSORE 7
44 TCS MYSORE 6 2000
55 ORACLE TUMKUR 3 3000

SELECT * FROM ORDERS;

ORD_NO PURCHASE_AMT ORD_DATE CUSTOMER_ID SALESMAN_ID

2 300000 12-04-16 11 2000

3) Consider the schema for Movie Database:

ACTOR (Act_id, Act_Name, Act_Gender) DIRECTOR (Dir_id, Dir_Name, Dir_Phone)


MOVIES (Mov_id, Mov_Title, Mov_Year, Mov_Lang, Dir_id)
MOVIE_CAST (Act_id, Mov_id, Role)
RATING (Mov_id, Rev_Stars)

Write SQL queries to

1. List the titles of all movies directed by ‘Hitchcock’.


2. Find the movie names where one or more actors acted in two or more movies.
3. List all actors who acted in a movie before 2000 and also in a movie after 2020 (use JOIN operation).
4. Find the title of movies and number of stars for each movie that has at least one rating and find the highest
number of stars that movie received. Sort the result by movie title.
5. Update rating of all movies directed by ‘Steven Spielberg’ to 5.

Table Creation:

ACTOR
CREATE TABLE ACTOR (
ACT_ID INT PRIMARY KEY,
ACT_NAME VARCHAR(20) NOT NULL,
ACT_GENDER CHAR(1) NOT NULL);

Table created.

DIRECTOR

CREATE TABLE DIRECTOR(


DIR_ID INT PRIMARY KEY,
DIR_NAME VARCHAR(20) NOT NULL,
DIR_PHONE INT NOT NULL);

Table created.

MOVIES

CREATE TABLE MOVIES(


MOV_ID INT PRIMARY KEY,
MOV_TITLE VARCHAR(25) NOT NULL,
MOV_YEAR INT NOT NULL,
MOV_LANG VARCHAR(15) NOT NULL,
DIR_ID INT NOT NULL,
FOREIGN KEY (DIR_ID) REFERENCES DIRECTOR(DIR_ID));

Table created.

MOVIE_CAST

CREATE TABLE MOVIE_CAST(


ACT_ID INT NOT NULL,
MOV_ID INT NOT NULL,
ROLE VARCHAR(10) NOT NULL,
FOREIGN KEY (ACT_ID) REFERENCES ACTOR(ACT_ID),
FOREIGN KEY (MOV_ID) REFERENCES MOVIES(MOV_ID));
Table created.

RATING

CREATE TABLE RATING(


MOV_ID INT,
REV_STARS VARCHAR(25) NOT NULL,
FOREIGN KEY (MOV_ID) REFERENCES MOVIES(MOV_ID));

Table created.

Description of Schema:

SQL> DESC ACTOR;


Name Null Type
ACT_ID NOT NULL INT
ACT_NAME NOT NULL VARCHAR(20)
ACT_GENDER NOT NULL CHAR(1)
SQL> DESC DIRECTOR;
Name Null Type
DIR_ID NOT NULL INT
DIR_NAME NOT NULL VARCHAR(20)
DIR_PHONE NOT NULL INT

SQL> DESC MOVIES;


Name Null Type
MOV_ID NOT NULL INT
MOV_TITLE NOT NULL VARCHAR (25)
MOV_YEAR NOT NULL INT
MOV_LANG NOT NULL VARCHAR (15)
DIR_ID NOT NULL INT

SQL> DESC RATING;


Name Null Type
MOV_ID NOT NULL INT
REV_STARS NOT NULL VARCHAR(25)
Values for tables:

SQL> INSERT INTO ACTOR

VALUES(111,'DEEPA','F'),

(222,'SUDEEP','M'),

(333,'PUNEETH','M'),

(444,'DHIGANTH','M'),

(555,'RANI','F');

SELECT * FROM ACTOR;

ACT ID ACT_NAME ACT_GENDER

111 DEEPA F

222 SUDEEP M

333 PUNEETH M

444 DHIGANTH M

555 RANI F

SQL> INSERT INTO DIRECTOR VALUES(&DIR_ID,'&DIR_NAME',&DIR_PHONE);

SQL> INSERT INTO MOVIES VALUES (&MOV_ID,'&MOV_TITLE','&MOV_YEAR','&MOV_LANG',


&DIR_ID);
SQL> INSERT INTO MOVIE_CAST VALUES(&ACT_ID,&MOV_ID,'&ROLE');
SQL> INSERT INTO RATING VALUES(&MOV_ID,&REV_STARS);
SQL> SELECT * FROM DIRECTOR;

DIR_ID DIR_NAME DIR_PHO


NE
101 HITCHCOCK 112267809
102 RAJ MOULI 152358709
103 YOGARAJ 272337808
104 STEVEN SPIELBERG 363445678
105 PAVAN KUMAR 385456809

SQL> SELECT * FROM MOVIES;

MOV_ID MOV_TITLE MOV_YEAR MOV_LANG DIR_ID

1111 LASTWORLD 20 ENGLISH 104


09
2222 EEGA 20 TELUGU 102
10
4444 PARAMATHMA 20 KANNADA 103
12
3333 MALE 20 KANNADA 103
16
5555 MANASARE 19 KANNADA 103
99
6666 REAR WINDOW 19 ENGLISH 101
54
7777 NOTORIOUS 19 ENGLISH 101
46
SQL> SELECT * FROM MOVIE_CAST;
ACT_ID MOV_ID ROLE

222 2222 VILAN


333 4444 HERO
111 4444 HEROIN
444 3333 GUEST
444 5555 HERO
555 7777 MOTHER

SQL> SELECT * FROM RATING;

MOV_ID REV_STARS

1111 3
2222 4
3333 3
5555 4
4444 5
Queries
1. List the titles of all movies directed by ‘Hitchcock’.

SELECT MOV_TITLE FROM MOVIES


WHERE DIR_ID = (SELECT DIR_ID
FROM DIRECTOR
WHERE DIR_NAME='HITCHCOCK');
MOV_TITLE
NOTORIOUS
REAR WINDOW

2. Find the movie names where one or more actors acted in two or more movies.

SELECT MOV_TITLE
FROM MOVIES M,MOVIE_CAST MC
WHERE M.MOV_ID=MC.MOV_ID AND ACT_ID IN (SELECT ACT_ID
FROM MOVIE_CAST GROUP BY ACT_ID
HAVING COUNT(ACT_ID)>=1)
GROUP BY MOV_TITLE
HAVING COUNT(*)>1;

MOV_TITLE
MALE
MANASARE

3. List all actors who acted in a movie before 2000 and also in a movie after 2015 (use
JOIN operation).

(SELECT A.ACT_NAME
FROM ACTOR A JOIN MOVIE_CAST M ON A.ACT_ID=M.ACT_ID
JOIN MOVIES M1 ON M.MOV_ID=M1.MOV_ID
WHERE M1.MOV_YEAR<2000 )
INTERSECT
(SELECT A.ACT_NAME
FROM ACTOR A JOIN MOVIE_CAST M ON A.ACT_ID=M.ACT_ID
JOIN MOVIES M1 ON M.MOV_ID=M1.MOV_ID
WHERE M1.MOV_YEAR>2015 );

ACT_NAME

DHIGANTH

4. Find the title of movies and number of stars for each movie that has at least one rating and find the
highest number of stars that movie received. Sort the result by movie title.

SELECT MOV_TITLE,MAX(REV_STARS)
FROM MOVIES
INNER JOIN RATING USING (MOV_ID)
GROUP BY MOV_TITLE
HAVING MAX(REV_STARS)>0
ORDER BY MOV_TITLE;

MOV_TITLE REV_STARS

EEGA 4
LASTWORLD 3
MALE 3
MANASARE 4
PARAMATHM 5
A

5. Update rating of all movies directed by ‘Steven Spielberg’ to 5.

UPDATE RATING
SET REV_STARS=5
WHERE MOV_ID IN (SELECT MOV_ID FROM MOVIES
WHERE DIR_ID IN (SELECT DIR_ID
FROM DIRECTOR
WHERE DIR_NAME='STEVEN SPIELBERG'));

SELEC * FROM RATING


T
REV_STARS
MOV_I
D
1111 5
2222 4
3333 3
5555 4
4444 5
4) Consider the schema for College Database:

STUDENT (USN, SName, Address, Phone, Gender)


SEMSEC (SSID, Sem, Sec)
CLASS (USN, SSID)
SUBJECT (Subcode, Title, Sem, Credits)
IAMARKS (USN, Subcode, SSID, Test1, Test2, Test3, FinalIA)

Write SQL queries to

1. List all the student details studying in fifth semester ‘B’ section.
2. Compute the total number of male and female students in each semester and in each section.
3. Create a view of Event 1 marks of student USN ‘01JST IS ’ in all subjects.
4. Calculate the Final IA (average of best two test marks) and update the corresponding table for all students.
5. Categorize students based on the following criterion:
If Final IA = 17 to 20 then CAT =‘Outstanding’
If Final IA = 12 to 16 then CAT = ‘Average’
If Final IA< 12 then CAT = ‘Weak’
Give these details only for 8th semester A, B, and C section students.

Table Creation:

STUDENT

CREATE TABLE STUDENT


(USN VARCHAR(10) PRIMARY KEY,
SNAME VARCHAR(25),
ADDRESS VARCHAR(25),
PHONE VARCHAR(10),
GENDER CHAR(1));

Table created.

SEMSEC

CREATE TABLE SEMSEC(


SSID VARCHAR(5) PRIMARY KEY,
SEM INT NOT NULL,
SEC VARCHAR(8) NOT NULL);

Table created.
CLASS
CREATE TABLE CLASS (
USN VARCHAR(10),
SSID VARCHAR(5), FOREIGN KEY(USN) REFERENCES STUDENT(USN), FOREIGN KEY(SSID)
REFERENCES SEMSEC(SSID));

Table created.

SUBJECT

CREATE TABLE SUBJECT(


SUBCODE VARCHAR(8) PRIMARY KEY,
TITLE VARCHAR(20),
SEM INT NOT NULL,
CREDITS INT );

Table created.

IAMARKS

CREATE TABLE IAMARKS (


USN VARCHAR(10),
SUBCODE VARCHAR(8),
SSID VARCHAR(5),
TEST1 INT,
TEST2 INT,
TEST3 INT,
FINALIA INT,FOREIGN KEY(USN)REFERENCES STUDENT(USN), FOREIGN KEY(SUBCODE)
REFERENCES SUBJECT(SUBCODE), FOREIGN KEY(SSID) REFERENCES SEMSEC(SSID));

Table created.
Values for tables:

STUDENT:

INSERTION TO BE DONE
SELECT * FROM STUDENT;

USN SNAME ADDRESS PHONE G

1cg15cs001 Abhi tumkur 9875698410 M


1cg15cs002 amulya gubbi 8896557412 F
1cg16me063 chethan nittur 7894759522 M
1cg14ec055 raghavi sspuram 9485675521 F
1cg15ee065 sanjay bangalore 9538444404 M

SEMSEC:

INSERTION TO BE DONE

SELECT * FROM SEMSEC;

SSID SEM S
-
5A 5
A
3B 3
B
7A 7
A
2C 2 C
4B 4
B
4C 4 C

CLASS:
INSERTION TO BE DONE.

SELECT * FROM CLASS;

USN SSID
1cg15cs001 5A
1cg15cs002 5A
1cg16me063 3B
1cg14ec055 7A
1cg15ee065 3B
1cg15ee065 4c

1cg15cs002 4c

SUBJECT:

INSERTION TO BE DONE
SELECT * FROM
SUBJECT;
SUBCODE TITLE SEM CREDITS

15cs53 dbms 5 4
15cs33 3 4
ds
15cs34 3 4
co
15csl58 dba 52
10cs71 oomd 7 4

IAMARKS:

INSERTION TO BE DONE

SELECT * FROM IAMARKS;


USN SUBCO SSI TEST1 TEST2 TEST3 FINALIA
DE D
1cg15cs001 15cs53 5A 18 19 15 19
1cg15cs002 15cs53 5A 15 16 14 16
1cg16me063 15cs33 3B 10 15 16 16
1cg14ec055 10cs71 7A 18 20 21 21
1cg15ee065 15cs33 3B 16 20 17 19
1cg15ee065 15cs53 4c 19 20 18 20

Queries:

1. List all the student details studying in fourth semester ‘C’ section.

SELECT S.*,SS.SEM,SS.SEC
-> FROM STUDENT S,SEMSEC SS,CLASS C WHERE S.USN=C.USN
-> AND SS.SSID=C.SSID
-> AND SS.SEM=4 AND SS.SEC='C';

USN SNAME ADDRESS PHONE G

1cg15ee065 Sanjay bangalore 9538444404 M

1cg15cs002 Amulya gubbi 8896557412 F

2. Compute the total number of male and female students in each semester and in each section.
mysql> SELECT SS.SEM,SS.SEC,S.GENDER,COUNT(S.GENDER) AS COUNT FROM
STUDENT S,SEMSEC SS,CLASS C WHERE S.USN=C.USN
-> AND SS.SSID=C.SSID GROUP BY SS.SEM,SS.SEC,S.GENDER ORDER BY SEM;
SEM S G COUNT(*)

3. Create a view of Test1 marks of student USN ‘1BI15CS101’ in all subjects.

mysql> CREATE VIEW STUDENT_TEST1_MARKS_V


-> AS SELECT TEST1, SUBCODE
-> FROM IAMARKS
-> WHERE USN='1BI15CS101';
Query OK, 0 rows affected (0.02 sec)

mysql> SELECT * FROM STUDENT_TEST1_MARKS_V;


SUBCODE TEST1

15cs33 16
15cs53 19

4. Calculate the FinalIA (average of best two test marks) and update the corresponding table for all
students.

mysql> DELIMITER //
mysql> CREATE PROCEDURE AVG_MARKS()
-> BEGIN
-> DECLARE C_A INTEGER;
-> DECLARE C_B INTEGER;
-> DECLARE C_C INTEGER;
-> DECLARE C_SUM INTEGER;
-> DECLARE C_AVG INTEGER;
-> DECLARE C_USN VARCHAR(10);
-> DECLARE C_SUBCODE VARCHAR(8);
-> DECLARE C_SSID VARCHAR(5);
->
-> DECLARE C_IAMARKS CURSOR FOR
-> SELECT GREATEST(TEST1,TEST2) AS A, GREATEST(TEST1,TEST3) AS B,
GREATEST(TEST3,TEST2) AS C, USN, SUBCODE, SSID
-> FROM IAMARKS
-> WHERE FINALIA IS NULL
-> FOR UPDATE;
->
-> OPEN C_IAMARKS;
-> LOOP
->
-> FETCH C_IAMARKS INTO C_A, C_B, C_C, C_USN, C_SUBCODE, C_SSID;
->
-> IF (C_A != C_B) THEN
-> SET C_SUM=C_A+C_B;
-> ELSE
-> SET C_SUM=C_A+C_C;
-> END IF;
->
-> SET C_AVG=C_SUM/2;
->
-> UPDATE IAMARKS SET FINALIA = C_AVG
-> WHERE USN = C_USN AND SUBCODE = C_SUBCODE AND SSID = C_SSID;
->
-> END LOOP;
-> CLOSE C_IAMARKS;
-> END;
-> //
Query OK, 0 rows affected (0.01 sec)

CALL AVG_MARKS ();

SELECT * FROM IAMARKS;

USN SUBCODE SSID TEST1 TEST2 TEST3 FINALIA


1cg15cs001 5A 18 19 15 19
15cs53
1cg15cs002 5A 15 16 14 16
15cs53
1cg16me063 3B 10 15 16 16
15cs33
1cg14ec055 7A 18 20 21 21
10cs71
1cg15ee065 3B 16 20 17 19
15cs33
1cg15ee065 4c 19 20 18 20
15cs53

DELIMITER;

5. Categorize students based on the following criterion:


If FinalIA = 17 to 20 then CAT = ‘Outstanding’
If FinalIA = 12 to 16 then CAT = ‘Average’
If FinalIA< 12 then CAT = ‘Weak’

Give these details only for 8th semester A, B, and C section students.

mysql> SELECT S.USN,S.SNAME,S.ADDRESS,S.PHONE,S.GENDER, IA.SUBCODE,


-> (CASE
-> WHEN IA.FINALIA BETWEEN 17 AND 20 THEN 'OUTSTANDING'
-> WHEN IA.FINALIA BETWEEN 12 AND 16 THEN 'AVERAGE'
-> ELSE 'WEAK'
-> END) AS CAT
-> FROM STUDENT S, SEMSEC SS, IAMARKS IA, SUBJECT SUB
-> WHERE S.USN = IA.USN AND
-> SS.SSID = IA.SSID AND
-> SUB.SUBCODE = IA.SUBCODE AND
-> SUB.SEM = 8;

USN SNAME ADDRESS PHONE G CAT


-
1cg14ec055 raghavi sspuram 9485675521 F WEAK
5) Consider the schema for Company Database:

EMPLOYEE (SSN, Name, Address, Sex, Salary, SuperSSN, DNo)


DEPARTMENT (DNo, DName, MgrSSN, MgrStartDate)
DLOCATION (DNo,DLoc)
PROJECT (PNo, PName, PLocation, DNo)
WORKS_ON (SSN, PNo, Hours)

Write SQL queries to

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. Show the resulting salaries if every employee working on the ‘IoT’ project is given a 10 percent raise.
3. 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
4. Retrieve the name of each employee who works on all the projects controlled by department number(use NOT
EXISTS operator).
5. 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.

Table Creation:

DEPARTMENT

CREATE TABLE DEPARTMENT


(DNO VARCHAR (20) PRIMARY KEY,
DNAME VARCHAR (20),
MGR_SSN VARCHAR (20),
MGR_START_DATE DATE);

DESC DEPARTMENT;
EMPLOYEE

CREATE TABLE EMPLOYEE


(SSN VARCHAR(20) PRIMARY KEY,
NAME VARCHAR(20),
ADDRESS VARCHAR(20),
SEX CHAR(1),
SALARY INTEGER,
SUPERSSN VARCHAR(20),
DNO VARCHAR(20),
FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN),
FOREIGN KEY (DNO) REFERENCES DEPARTMENT (DNO));

DESC EMPLOYEE;
ALTER TABLE DEPARTMENT
ADD FOREIGN KEY (MGR_SSN) REFERENCES
EMPLOYEE(SSN);

Table altered.

DLOCATION

CREATE TABLE DLOCATION


(DLOC VARCHAR(20),
DNO VARCHAR(20),
FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNO),
PRIMARY KEY (DNO, DLOC));

DESC DLOCATION;

PROJECT

CREATE TABLE PROJECT


(PNO INTEGER PRIMARY KEY,
PNAME VARCHAR(20),
PLOCATION VARCHAR(20),
DNO VARCHAR(20),
FOREIGN KEY (DNO) REFERENCES
DEPARTMENT(DNO));

DESC PROJECT;

WORKS_ON

CREATE TABLE WORKS_ON


(HOURS INTEGER,
SSN VARCHAR(20),
PNO INTEGER,
FOREIGN KEY (SSN) REFERENCES EMPLOYEE(SSN),
FOREIGN KEY (PNO) REFERENCES PROJECT(PNO),
PRIMARY KEY (SSN, PNO));

DESC WORKS_ON;

Values for tables:

DEPARTMENT

INSERT INTO DEPARTMENT VALUES(‘DNO’, ‘DNAME’, ‘MGRSSN’ ,'MGRSTARTDATE');


SELECT * FROM DEPARTMENT;

DNO DNAME MGRSSN MGRSTARTD


- -
1 RESEARCH 111111 10-AUG-12
2 ACCOUNTS 222222 10-AUG-10
3 AI 333333 15-APR-12
4 NETWORKS 111111 18-MAY-14
5 BIGDATA 666666 21-JAN-10

5 rows selected.

EMPLOYEE
INSERT INTO EMPLOYEE VALUES('SSN','NAME','ADDRESS','SEX',SALARY,
'SUPERSSN' ,‘ ‘ DNO’);

SELECT * FROM EMPLOYEE;

SSN NAME ADDRESS SE SALARY SUPERSSN D


X N
O
111111 RAJ BENGALUR M 700000 1
U
222222 RASHMI MYSORE F 400000 111111 2
333333 RAGAVI TUMKUR F 800000 3
444444 RAJESH TUMKUR M 650000 333333 3
555555 RAVEESH BENGALUR M 500000 333333 3
U
666666 SCOTT ENGLAND M 700000 444444 5
777777 NIGANTH GUBBI M 200000 222222 2
888888 RAMYA GUBBI F 400000 222222 3
999999 VIDYA TUMKUR F 650000 333333 3
100000 GEETHA TUMKUR F 800000 3

10 rows selected.

DLOCATION

INSERT INTO DLOCATION VALUES(‘DNO’,'DLOC');

SELECT * FROM DLOCATION;


DNO DLOC
1 MYSORE
2 TUMKUR
3 GUBBI
4 DELHI
5 BENGALURU

PROJECT
INSERT INTO PROJECT VALUES(PNO,'PNAME','PLOCATION',’DNO’);
SELECT * FROM PROJECT;

PNO PNAME PLOCATION DNO

111 IOT
GUBBI
222
TEXTSPEECH GUBBI
333 4
IPSECURITY DELHI
444 TRAFICANAL 5
BENGALURU
555 1
CLOUDSEC DELHI

5 rows selected.

WORKS_ON

INSERT INTO WORKS_ON VALUES ('SSN’, PNO, HOURS);

SELECT * FROM WORKS_ON;

SSN PNO HOURS


666666 333 4
666666 111 2
111111 222 3
555555 222 2
333333 111 4
444444 111 6
222222 111 2

8 rows selected.
Queries
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.

SELECT DISTINCT P.PNO


FROM PROJECT P, DEPARTMENT D, EMPLOYEE E
WHERE E.DNO=D.DNO
AND D.MGR_SSN=E.SSN
AND E.NAME LIKE '%SCOTT'
UNION
SELECT DISTINCT P1.PNO
FROM PROJECT P1, WORKS_ON W, EMPLOYEE E1
WHERE P1.PNO=W.PNO
AND E1.SSN=W.SSN
AND E1.NAME LIKE '%SCOTT';

PNO

111
333
444

2. Show the resulting salaries if every employee working on the ‘IoT’ project is given a 10 percent raise.

SELECT E.NAME, 1.1*E.SALARY AS INCR_SAL


FROM EMPLOYEE E, WORKS_ON W, PROJECT P
WHERE E.SSN=W.SSN
AND W.PNO=P.PNO
AND P.PNAME='IOT';

SSN NAME ADDRESS S SALARY DNO


E SUPERSSN
X
111111 RAJ BENGALURU M 700000 1
222222 RASHMI MYSORE F 440000 111111 2
333333 RAGAVI TUMKUR F 880000 3
444444 RAJESH TUMKUR M 715000 333333 3
555555 RAVEESH BENGALURU M 500000 333333 3
666666 SCOTT ENGLAND M 770000 444444 5
777777 NIGANTH GUBBI M 200000 222222 2
888888 RAMYA GUBBI F 400000 222222 3
999999 VIDYA TUMKUR F 650000 333333 3
100000 GEETHA TUMKUR F 800000 3

10 rows selected.

3. 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.

SELECT SUM(E.SALARY), MAX(E.SALARY),


MIN(E.SALARY), AVG(E.SALARY)
FROM EMPLOYEE E, DEPARTMENT D
WHERE E.DNO=D.DNO
AND D.DNAME='ACCOUNTS';

4
0
0
0
0
440000 200000 320000

4. Retrieve the name of each employee who works on all the projects controlled by department
number 5 (use NOT EXISTS operator).

SELECT E.NAME
FROM EMPLOYEE E
WHERE NOT EXISTS(SELECT PNO FROM PROJECT WHERE DNO='5' AND PNO NOT
IN (SELECT
PNO FROM WORKS_ON
WHERE E.SSN=SSN));

NAME
SCOTT

5. 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.

SELECT D.DNO, COUNT(*)


FROM DEPARTMENT D, EMPLOYEE E
WHERE D.DNO=E.DNO
AND E.SALARY > 600000
AND D.DNO IN (SELECT E1.DNO
FROM EMPLOYEE E1
GROUP BY E1.DNO
HAVING COUNT(*)>5)
GROUP BY D.DNO;

DNO COUNT(SSN)

3 4
6) Consider the schema of the call detail table to partitioned primary index:

CREATE TABLE calldetail (phone_number DECIMAL(10) NOT NULL, call_start TIMESTAMP, call_duration
INTEGER, call_description VARCHAR(30)) PRIMARY INDEX (phone_number, call_start);

Demonstrate the query against this table be optimized by partitioning its primary index using partitioning
techniques.

You might also like