0% found this document useful (0 votes)
465 views4 pages

CSE444 SQL Practice: Movie Database

The document provides instructions for homework 3 which involves writing SQL queries to retrieve information from a movie database with tables for customers, inventory, movies, movie suppliers, orders, and rentals. Students are asked to write 10 SQL queries to answer questions about the data and return the queries and result counts. The questions involve finding movies by supplier, longest rental duration, suppliers for all inventory movies, movies ordered in multiple copies, customers by movie or supplier, movies with multiple inventory copies, long-term rentals, and cheapest supplier for a movie.

Uploaded by

aamir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
465 views4 pages

CSE444 SQL Practice: Movie Database

The document provides instructions for homework 3 which involves writing SQL queries to retrieve information from a movie database with tables for customers, inventory, movies, movie suppliers, orders, and rentals. Students are asked to write 10 SQL queries to answer questions about the data and return the queries and result counts. The questions involve finding movies by supplier, longest rental duration, suppliers for all inventory movies, movies ordered in multiple copies, customers by movie or supplier, movies with multiple inventory copies, long-term rentals, and cheapest supplier for a movie.

Uploaded by

aamir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
  • SQL Homework Instructions
  • Query 1: List Search
  • Query 2: Longest Duration Rental
  • Query 3: Supplier Movie Inventory
  • Query 5: Customer Rentals and Price
  • Query 4: Movies with High Orders
  • Query 6: Non-Inventory Movies

Homework 3

CSE444

This homework will give you practice writing SQL statements and using the
query facility of SQL Server. The queries that you'll implement in SQL Server are based
on a movies database. The schema for the movie database is as follows:

Customers
CustID LastName FirstName

Inventory
TapeID MovieID

Movies
MovieID MovieName

MovieSupplier
SupplierID MovieID Price

Orders
OrderID SupplierID MovieID Copies

Rentals
CustomerID TapeID CkoutDate Duration

Suppliers
SupplierID SupplierName

Write out SQL statements for the following 10 queries about the movie database. Enter
the SQL code in the ISQL_w facility of SQL Server (as talked about in class last Friday).
Select the 'cse444sql' database in the DB combo box of the ISQL_w window, (that's the
movie database described above despite the undescriptive name). Enter your query in the
query tab and check your results in the result tab.

To turn in: Please turn in a print out of your SQL queries and the number of tuples
returned in the resulting tables for each one. (The tables themselves may be long, so
don't bother printing those out.)

Please note that these questions may be interpreted in different ways. Just state your
interpretations of them if you feel there is any ambiguity.

1. Which movies are supplied by "Joe's House of Video" or "Video Warehouse"?

SELECT MovieName
FROM Movies, MovieSupplier, Suppliers
WHERE [Link] = "Joe's House of Video" and [Link] =
[Link] and [Link] = [Link]
UNION
SELECT MovieName
FROM Movies, MovieSupplier, Suppliers
WHERE [Link] = "Video Warehouse" and [Link] =
[Link] and [Link] = [Link]

2. Which movie was rented for the longest duration (by any customer)?

SELECT [Link]
FROM Rentals, Movies, Inventory
WHERE [Link] = [Link] and [Link] =
[Link] and [Link] >= ALL (SELECT Duration FROM Rentals)

3. Which suppliers supply all the movies in the inventory? (Hint: first get a list of the
movie suppliers and all the movies in the inventory using the cross product. Then
find out which of these tuples are invalid.)

SELECT [Link]
FROM Suppliers
WHERE [Link] NOT IN
(SELECT [Link],
FROM MovieSupplier AS MS, Inventory AS I
WHERE NOT EXISTS
(SELECT *
FROM Inventory, MovieSupplier
WHERE [Link] = [Link] and
[Link] = [Link] and
[Link] = [Link]) )

4. How many movies in the inventory does each movie supplier supply? That is, for
each movie supplier, calculate the number of movies it supplies that also happen to be
movies in the inventory.

SELECT [Link], COUNT( DISTINCT MovieID)


FROM Suppliers, MovieSupplier, Movies
WHERE [Link] = [Link] and
[Link] = [Link]
GROUP BY [Link]

5. For which movies have more than 4 copies been ordered?


SELECT [Link]
FROM Movies, Orders
WHERE [Link] = [Link]
GROUP BY [Link]
HAVING SUM(Copies) > 4

6. Which customers rented "Fatal Attraction 1987" or rented a movie supplied by "VWS
Video"?

SELECT LastName
FROM Customers, Rentals, Inventory, Movies
WHERE [Link] = [Link] and [Link] =
[Link] and [Link] = [Link] and
[Link] LIKE "%Fatal Attraction 1987%"
UNION
SELECT LastName
FROM Customers, Rentals, Inventory, Movies, MovieSupplier, Suppliers
WHERE [Link] = [Link] and [Link] =
[Link] and [Link] = [Link] and
[Link] = [Link] and [Link] =
[Link] and [Link] = "VWS Video"

7. For which movies are there more than 1 copy in our inventory? (Note that the
TapeID in inventory is different for different copies of the same MovieID)

SELECT [Link]
FROM Inventory AS I1, Inventory AS I2, Movies
WHERE [Link] = [Link] and [Link] <> [Link]
and [Link] = [Link]

8. Which customers rented movies for 5 days or more?

SELECT DISTINCT LastName


FROM Customers, Rentals
WHERE [Link] = [Link] and Duration >= 5

9. Which supplier has the cheapest price for the movie "Almost Angels 1962"?

SELECT [Link]
FROM Suppliers, MovieSuppliers, Movies
WHERE [Link] = [Link] and
[Link] = [Link] and [Link] LIKE "%
Almost Angels 1962%"
and price <= ALL
(SELECT price
FROM MovieSuppliers, Movies
WHERE [Link] = [Link] and
[Link] LIKE "% Almost Angels 1962%")

10. Which movies aren't in the inventory?

SELECT [Link]
FROM Movies
WHERE MovieID NOT IN
(SELECT MovieID
FROM Inventory)

You might also like