Open In App

SQL queries on FILM Database

Last Updated : 29 Aug, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Consider the following tables in Film Database:

ARTIST (Art_id, Art_Name, Art_Gender) 
PRODUCER (Prod_id, Prod_Name, Prod_Phone)
FILMS (Film_id, Film_Title, Film_Year, Film_Lang, Prod_id) 
CASTING (Art_id, Film_id, Part) 
REVIEW (Film_id, Stars) 

The data content of these five tables are shown below:

SELECT * FROM ARTIST;
Art_id Art_Name Art_Gender
101 AMIT M
102 PRITAM M
103 SREYA F
104 SUJATA F
SELECT * FROM PRODUCER;
Prod_id Prod_Name Prod_Phone
200 ADITYA 6735835863
201 FARAN 8654297433
202 YASH 8765421567
203 NIRAJ 7654321986
SELECT * FROM FILMS;
Film_id Film_Title Film_Year Film_Lang Prod_id
11 WAR 2 2017 ENGLISH 201
12 MOMENTS 2015 HINDI 203
13 THE MAY 2019 ENGLISH 201
14 BHANUMATI 2014 TELUGU 200
SELECT * FROM CASTING;
Art_id Film_id Part
101 12 ACTOR
101 11 ACTOR
103 13 ACTRESS
103 12 GUEST
104 14 ACTRESS
SELECT * FROM REVIEW;
Film_id Stars
11 4
12 2
13 5
14 4

Query-1: Find the name of all the Films whose producer is “NIRAJ”. First we will find the Producer ID for the Producer Named “NIRAJ” and for this we use the PRODUCER table.

SELECT PROD_ID 
FROM PRODUCER 
WHERE PROD_NAME = ‘NIRAJ’

The above query will return the Prod_id “203”. Now we will find the title of films whose pros_id is “203”. For doing this we use the table FILMS and use the above query as a sub query.

SELECT FILM_TITLE 
FROM FILMS 
WHERE PROD_ID IN (SELECT PROD_ID 
FROM PRODUCER 
WHERE PROD_NAME = ‘NIRAJ’);

Output:

FILM_TITLE
MOMENTS

Query-2: Display all artists who acted in a film between 2016 and 2018. For finding this we need to use the ARTIST_NAME field of ARTIST table as well as the FILM_YEAR field of FILMS table. For joining these two tables we use a third table CASTING using Art_id and Film_id.After joining we use the BETWEEN operator for checking the FILM_YEAR in between 2016 and 2018.

SELECT A.ART_NAME,  F.FILM_TITLE, F.FILM_YEAR 
FROM ARTIST A, CASTING C, FILMS F
WHERE A.ART_ID=C.ART_ID 
AND C.FILM_ID=F.FILM_ID 
AND F.FILM_YEAR  BETWEEN 2016 AND 2018;

Output:

ART_NAME FILM_TITLE FILM_YEAR
AMIT WAR 2 2017

Query-3: Display the names of films with the stars received and sort the result on the basis of stars. For this we need FILM_TITLE field of FILMS table as well as STARS field of REVIEW table. For joining these two tables we will use the common field which is the FILM_ID. And after joining we display the result in the order of increasing STARS by using ORDER BY clause.

SELECT F.FILM_TITLE, R_STARS
FROM FILMS F, REVIEW R
WHERE F.FILM_ID=R.FILM_ID
ORDER BY R.STARS DESC

Output:

FILM_TITLE STARS
THE MAY 5
BHANUMATI 4
WAR 2 4
MOMENTS 2

Query-4: Update the stars of all films whose producer is ‘NIRAJ’ to 5. First we find the PRODUCER ID of the PRODUCER named “NIRAJ” by using this query:

SELECT PROD_ID 
FROM PRODUCER 
WHERE PROD_NAME = ‘NIRAJ’

Then find the FILM_ID from the FILMS table using this PROD_ID.

SELECT FILM_ID FROM FILMS 
WHERE PROD_ID IN (SELECT PROD_ID 
FROM PRODUCER 
WHERE PROD_NAME = ‘NIRAJ’)

And then this FILM_ID helps in Updating the value of STARS in REVIEW table using UPDATE command.

UPDATE REVIEW 
SET STARS=5 
WHERE FILM_ID IN (SELECT FILM_ID FROM FILMS 
WHERE PROD_ID IN (SELECT PROD_ID 
FROM PRODUCER 
WHERE PROD_NAME = ‘NIRAJ’));

Output:

1 row updated.

To observe the changes we can use SELECT * command in REVIEW table.

SELECT * FROM REVIEW;
Film_id Stars
11 4
12 5
13 5
14 4

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads