From 6ed130fd434f16333b2d46aa173d030591a4bd4e Mon Sep 17 00:00:00 2001 From: Jan Noel Vero Date: Tue, 4 Aug 2026 18:05:01 +0200 Subject: [PATCH 1/2] lab-sql-basic-queries --- sakila_basic_queries.sql.sql | 140 +++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sakila_basic_queries.sql.sql diff --git a/sakila_basic_queries.sql.sql b/sakila_basic_queries.sql.sql new file mode 100644 index 0000000..7aaf1c8 --- /dev/null +++ b/sakila_basic_queries.sql.sql @@ -0,0 +1,140 @@ +-- ================================================== +-- SQL Basic Queries Lab +-- Sakila Database +-- ================================================== + +USE sakila; + +-- ================================================== +-- 1. Display all available tables +-- ================================================== + +SHOW TABLES; + + +-- ================================================== +-- 2. Retrieve all data from actor, film and customer +-- ================================================== + +SELECT * +FROM actor; + +SELECT * +FROM film; + +SELECT * +FROM customer; + + +-- ================================================== +-- 3. Retrieve specific columns +-- ================================================== + +-- 3.1 Titles of all films + +SELECT title +FROM film; + + +-- 3.2 Languages used in films +-- Alias the name column as language + +SELECT name AS language +FROM language; + + +-- 3.3 First names of all employees + +SELECT first_name +FROM staff; + + +-- ================================================== +-- 4. Retrieve unique release years +-- ================================================== + +SELECT DISTINCT release_year +FROM film; + + +-- ================================================== +-- 5. Counting records for database insights +-- ================================================== + +-- 5.1 Number of stores + +SELECT COUNT(*) AS number_of_stores +FROM store; + + +-- 5.2 Number of employees + +SELECT COUNT(*) AS number_of_employees +FROM staff; + + +-- 5.3 Number of film copies available for rent + +SELECT COUNT(*) AS films_available_for_rent +FROM inventory; + + +-- Number of completed rental transactions + +SELECT COUNT(*) AS films_rented +FROM rental +WHERE return_date IS NOT NULL; + + +-- Optional query showing currently rented film copies + +SELECT COUNT(*) AS currently_rented +FROM rental +WHERE return_date IS NULL; + + +-- 5.4 Number of distinct actor last names + +SELECT COUNT(DISTINCT last_name) AS distinct_actor_last_names +FROM actor; + + +-- ================================================== +-- 6. Retrieve the 10 longest films +-- ================================================== + +SELECT title, length +FROM film +ORDER BY length DESC +LIMIT 10; + + +-- ================================================== +-- 7. Filtering techniques +-- ================================================== + +-- 7.1 Actors with the first name SCARLETT + +SELECT * +FROM actor +WHERE first_name = 'SCARLETT'; + + +-- ================================================== +-- BONUS +-- ================================================== + +-- 7.2 Films containing ARMAGEDDON in the title +-- and longer than 100 minutes + +SELECT title, length +FROM film +WHERE title LIKE '%ARMAGEDDON%' +AND length > 100; + + +-- 7.3 Number of films containing Behind the Scenes content + +SELECT COUNT(*) AS films_with_behind_the_scenes +FROM film +WHERE special_features LIKE '%Behind the Scenes%'; \ No newline at end of file From 1ac6d6b805338677a8e9fe7cfd263a8a9c048244 Mon Sep 17 00:00:00 2001 From: Jan Noel Vero Date: Tue, 4 Aug 2026 18:32:04 +0200 Subject: [PATCH 2/2] complete lab-sql-basic-queries --- sakila_basic_queries.sql.sql | 74 ++++++++++++++---------------------- 1 file changed, 28 insertions(+), 46 deletions(-) diff --git a/sakila_basic_queries.sql.sql b/sakila_basic_queries.sql.sql index 7aaf1c8..20587ac 100644 --- a/sakila_basic_queries.sql.sql +++ b/sakila_basic_queries.sql.sql @@ -1,20 +1,19 @@ --- ================================================== --- SQL Basic Queries Lab --- Sakila Database --- ================================================== + USE sakila; +SELECT DATABASE(); + --- ================================================== --- 1. Display all available tables --- ================================================== +-- ============================================================ +-- 1. Display all available tables in the Sakila database +-- ============================================================ SHOW TABLES; --- ================================================== --- 2. Retrieve all data from actor, film and customer --- ================================================== +-- ============================================================ +-- 2. Retrieve all data from actor, film, and customer +-- ============================================================ SELECT * FROM actor; @@ -26,82 +25,68 @@ SELECT * FROM customer; --- ================================================== +-- ============================================================ -- 3. Retrieve specific columns --- ================================================== +-- ============================================================ -- 3.1 Titles of all films - SELECT title FROM film; --- 3.2 Languages used in films +-- 3.2 List of languages used in films -- Alias the name column as language - SELECT name AS language FROM language; -- 3.3 First names of all employees - SELECT first_name FROM staff; --- ================================================== +-- ============================================================ -- 4. Retrieve unique release years --- ================================================== +-- ============================================================ SELECT DISTINCT release_year FROM film; --- ================================================== +-- ============================================================ -- 5. Counting records for database insights --- ================================================== +-- ============================================================ -- 5.1 Number of stores - SELECT COUNT(*) AS number_of_stores FROM store; -- 5.2 Number of employees - SELECT COUNT(*) AS number_of_employees FROM staff; -- 5.3 Number of film copies available for rent - +-- The inventory table contains the film copies owned by the stores SELECT COUNT(*) AS films_available_for_rent FROM inventory; --- Number of completed rental transactions - +-- 5.3 Number of rental transactions +-- Each row in the rental table represents a film rental SELECT COUNT(*) AS films_rented -FROM rental -WHERE return_date IS NOT NULL; - - --- Optional query showing currently rented film copies - -SELECT COUNT(*) AS currently_rented -FROM rental -WHERE return_date IS NULL; +FROM rental; -- 5.4 Number of distinct actor last names - SELECT COUNT(DISTINCT last_name) AS distinct_actor_last_names FROM actor; --- ================================================== +-- ============================================================ -- 6. Retrieve the 10 longest films --- ================================================== +-- ============================================================ SELECT title, length FROM film @@ -109,32 +94,29 @@ ORDER BY length DESC LIMIT 10; --- ================================================== +-- ============================================================ -- 7. Filtering techniques --- ================================================== +-- ============================================================ -- 7.1 Actors with the first name SCARLETT - SELECT * FROM actor WHERE first_name = 'SCARLETT'; --- ================================================== +-- ============================================================ -- BONUS --- ================================================== +-- ============================================================ --- 7.2 Films containing ARMAGEDDON in the title +-- 7.2 Movies containing ARMAGEDDON in the title -- and longer than 100 minutes - SELECT title, length FROM film WHERE title LIKE '%ARMAGEDDON%' -AND length > 100; + AND length > 100; -- 7.3 Number of films containing Behind the Scenes content - SELECT COUNT(*) AS films_with_behind_the_scenes FROM film WHERE special_features LIKE '%Behind the Scenes%'; \ No newline at end of file