Adventures in Machine Learning

Unleash the Power of SQL to Discover New Movies

Importing and Setting up the Movie Database

If you are a movie buff or a data enthusiast, chances are you have heard of the IMDb dataset. IMDb, or the Internet Movie Database, is an online database that provides information about movies, TV shows, video games, and more.

It has one of the largest collections of film-related data in the world with over 6.5 million titles and 10.4 million people. In this article, we will explore how to download and set up the IMDb dataset on a SQL Server Management Studio (SSMS).

Downloading the IMDb Dataset Directory

Before we start, you will need to download the IMDb dataset directory. The dataset directory contains several files, including the title basics, title ratings, and name basics.

You can download the dataset directory from the IMDb website by following these steps:

1. Go to the IMDb datasets page at

2. Download the archive file ‘title.basics.tsv.gz’, ‘title.ratings.tsv.gz’ and ‘name.basics.tsv.gz’.

Once you have downloaded and extracted the files, you will have three TSV files. TSV is a file format that stands for “tab-separated values.” It is very similar to the “comma-separated values” (CSV) format, which is commonly used to store data in a tabular format.

Converting the Files to CSV

Most database management systems (DBMS) do not support TSV files. Therefore, we need to convert the TSV files to CSV files before importing them into SSMS.

You can use any text editor or spreadsheet software to convert the files, but we recommend using Microsoft Excel. Here’s how to do it:


Open Microsoft Excel, and click on the “File” menu. 2.

Click on “Open”, and select one of the TSV files. 3.

Excel will prompt you to confirm that you want to use the “Text Import Wizard”. Click on “OK”.

4. In the “Text Import Wizard” window, select “Delimited” as the file type.

5. Tick the “Tab” checkbox under “Delimiters”.

6. Click on “Finish”.

7. You should now see the TSV file in Excel.

Click on the “File” menu again, and select “Save As”. 8.

Set the “Save as type” drop-down menu to “CSV (Comma delimited)”. 9.

Pick a file name of your choice and save the file. Repeat steps 2-9 for each of the three TSV files.

Importing the Files into the DBMS

Now that we have converted the TSV files to CSV files, we can import them into SSMS. SSMS is a free, graphical tool that allows you to manage SQL Server instances.

Here’s how to import the files:

1. Open SSMS, and connect to your SQL Server instance.

2. Right-click on the database where you want to import the IMDb dataset, and select “Tasks” -> “Import Data”.

3. In the “Choose a Data Source” window, select “Flat File Source” as the data source.

4. Browse to the folder where you saved the CSV files, and select one of them.

5. SSMS will automatically detect that the file is a CSV file.

Click on “Next”. 6.

In the “Choose a Destination” window, select “SQL Server Native Client” as the destination. 7.

Select the database where you want to import the IMDb dataset. 8.

In the “Specify Table Copy or Query” window, select “Copy data from one or more tables or views”. 9.

Select the “Edit Mappings” button and ensure that each column maps correctly to the correct datatype in the destination table. 10.

Click on “OK” to save the mappings. 11.

Repeat steps 4-10 for each of the three CSV files.

SQL Exercises on a Movie Database

Now that we have imported the IMDb dataset into SSMS, we can run SQL queries on it. In this section, we will explore a few examples of common queries on a movie database.

Querying for Horror Movies

Let’s say we want to find all the horror movies in the database. We can do this by querying the title_basics table and filtering by the genre column.

Here’s an example query:


FROM title_basics

WHERE genres LIKE ‘%Horror%’

This query selects all columns from the title_basics table where the genres column contains the word “Horror”. The “%” symbol is a wildcard that matches any string of characters.

This means that the query will return all movies that have the word “Horror” in their genre, such as “The Shining” and “A Nightmare on Elm Street”.

Refining the List of Horror Movies

Now, let’s say we want to refine the list of horror movies by their ratings and the number of votes they received. We can do this by joining the title_basics and title_ratings tables and adding some filtering and sorting.

Here’s an example query:

SELECT title_basics.primaryTitle, title_ratings.averageRating, title_ratings.numVotes

FROM title_basics

JOIN title_ratings ON title_basics.tconst = title_ratings.tconst

WHERE title_basics.genres LIKE ‘%Horror%’

AND title_ratings.averageRating >= 7.0

AND title_ratings.numVotes >= 1000

ORDER BY title_ratings.averageRating DESC

This query joins the title_basics table with the title_ratings table using the common tconst column. It then filters the results to only include movies with the word “Horror” in their genre, an average rating of 7.0 or higher, and at least 1000 votes.

The query then sorts the results by the average rating in descending order.

Finding Movies Directed by Steven Spielberg

Let’s switch gears and find all the movies that Steven Spielberg has directed. We can do this by querying the name_basics and title_crew tables and filtering by the director column.

Here’s an example query:

SELECT title_basics.primaryTitle, title_basics.startYear

FROM name_basics

JOIN title_crew ON name_basics.nconst = title_crew.directors

JOIN title_basics ON title_crew.tconst = title_basics.tconst

WHERE name_basics.primaryName = ‘Steven Spielberg’

ORDER BY title_basics.startYear ASC

This query joins the name_basics table with the title_crew table using the director column. It then joins the title_crew table with the title_basics table using the tconst column.

The query then filters the results to only include movies that Steven Spielberg directed and sorts the results by the start year in ascending order.

Using a Subquery to Get the Names of Movies

Finally, let’s explore a more advanced feature of SQL: subqueries. A subquery is a query that is nested inside another query.

It allows us to perform complex operations like filtering and sorting within a single query. Let’s say we want to find all the movies that have the word “Dark” in their title and were released in the same year as “The Shawshank Redemption”.

We can do this by using a subquery to get the year of “The Shawshank Redemption” and then filtering the results. Here’s an example query:

SELECT primaryTitle

FROM title_basics

WHERE primaryTitle LIKE ‘%Dark%’

AND startYear = (

SELECT startYear

FROM title_basics

WHERE primaryTitle = ‘The Shawshank Redemption’


This query selects all movies from the title_basics table where the primaryTitle column contains the word “Dark” and the startYear column is equal to the start year of “The Shawshank Redemption”. The subquery in parentheses returns the start year for “The Shawshank Redemption”, which is then used in the outer query to filter the results.


In conclusion, the IMDb dataset is a valuable source of movie-related data that can be easily imported into a DBMS like SQL Server Management Studio. With a few simple SQL queries, we can perform advanced operations like filtering, sorting, and subqueries to get the information we need.

By following the steps outlined in this article, you can start exploring the vast world of movie data and uncovering new insights.

The Power of SQL in Analyzing Large Datasets

SQL, or Structured Query Language, is a powerful tool for analyzing large datasets. It allows users to extract, manipulate, and aggregate data quickly and efficiently.

In the realm of movie data, SQL is particularly useful for finding patterns, trends, and insights that would be difficult to identify using other methods. By leveraging the power of SQL, movie enthusiasts can uncover new perspectives on their favorite films and discover hidden gems they may have overlooked.

Never Run Out of Movies to Watch

One of the most challenging aspects of being a movie enthusiast is choosing what to watch next. With so many options available, it can be overwhelming to know where to begin.

However, by leveraging the power of SQL, users can create custom queries to find movies that match their specific preferences. For example, if a user is in the mood for a light-hearted comedy, they could run a query to find all movies in the database with a genre of “Comedy” and a user rating of 7.0 or higher.

Alternatively, if a user is looking for a movie with a particular actor or director, they could run a query to find all movies that feature that person. Using SQL allows users to streamline their movie selection process and discover films they may not have considered before.

By filtering movies based on specific criteria, users can ensure that they are always presented with options that match their tastes and preferences. SQL Practice Set from

Learning SQL can be a daunting task, especially for those who have little or no experience with programming.

Fortunately, there are many resources available online that can help users learn and practice SQL at their own pace. One such resource is, which offers a free SQL practice set for movie enthusiasts.

The SQL practice set from includes a database of over 10,000 movies, along with a series of exercises that users can complete to test their SQL skills. The exercises cover a range of topics, from basic SELECT statements to more advanced filtering and sorting queries.

By completing the practice set, users can gain valuable experience using SQL in a real-world context and improve their ability to analyze movie data. Moreover, offers a range of online courses, webinars, and tutorials that cover a variety of SQL-related topics.

Whether you are a beginner or an experienced SQL user, has resources that can help you improve your skills and deepen your understanding of the language.


In conclusion, SQL is a powerful tool for analyzing large datasets, especially in the context of movie data. By using SQL, movie enthusiasts can discover new perspectives on their favorite films and uncover hidden gems they may have overlooked.

Additionally, by leveraging the resources available through, users can improve their SQL skills and gain valuable experience using the language to analyze movie data. Whether you are looking to streamline your movie selection process or simply deepen your understanding of SQL, there are many ways to leverage this powerful language for your movie-related needs.

In this article, we explored the power of SQL in analyzing large movie datasets, emphasizing how it can help users never run out of movies to watch. Using SQL queries, movie enthusiasts can refine their movie selection process and discover films that match their specific preferences.

Additionally, we discussed the importance of learning SQL through resources like, which offers a free SQL practice set and a range of courses for users to deepen their understanding of the language. By leveraging the power of SQL, movie enthusiasts can uncover new insights and discover hidden gems, making their movie-watching experience more enjoyable and rewarding.

Popular Posts