From a6e18b38a7b29146c1544f70d0d0885b27c0072f Mon Sep 17 00:00:00 2001 From: Jonas Finborud Nyman Date: Wed, 22 Jan 2025 16:38:44 +0100 Subject: [PATCH 1/2] Completed Core --- sql/films/create-films.sql | 8 ++++++++ sql/films/insert-films.sql | 17 +++++++++++++++++ sql/films/select-films.sql | 25 +++++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 sql/films/create-films.sql create mode 100644 sql/films/insert-films.sql create mode 100644 sql/films/select-films.sql diff --git a/sql/films/create-films.sql b/sql/films/create-films.sql new file mode 100644 index 0000000..c683eb9 --- /dev/null +++ b/sql/films/create-films.sql @@ -0,0 +1,8 @@ +CREATE TABLE IF NOT EXISTS Movies ( + id SERIAL PRIMARY KEY, + title TEXT, + genre TEXT, + year INT, + score INT, + UNIQUE(title) +) \ No newline at end of file diff --git a/sql/films/insert-films.sql b/sql/films/insert-films.sql new file mode 100644 index 0000000..52a4738 --- /dev/null +++ b/sql/films/insert-films.sql @@ -0,0 +1,17 @@ +INSERT INTO Movies + (title, genre, year, score) +VALUES + ('The Shawshank Redemption', 'Drama', 1994, 9), + ('The Godfather', 'Crime', 1972, 9), + ('The Dark Knight', 'Action', 2008, 9), + ('Alien', 'SciFi', 1979, 9), + ('Total Recall', 'SciFi', 1990, 8), + ('The Matrix', 'SciFi', 1999, 8), + ('The Matrix Resurrections', 'SciFi', 2021, 5), + ('The Matrix Reloaded', 'SciFi', 2003, 6), + ('The Hunt for Red October', 'Thriller', 1990, 7), + ('Misery', 'Thriller', 1990, 7), + ('The Power Of The Dog', 'Western', 2021, 6), + ('Hell or High Water', 'Western', 2016, 8), + ('The Good the Bad and the Ugly', 'Western', 1966, 9), + ('Unforgiven', 'Western', 1992, 7); \ No newline at end of file diff --git a/sql/films/select-films.sql b/sql/films/select-films.sql new file mode 100644 index 0000000..59e39a6 --- /dev/null +++ b/sql/films/select-films.sql @@ -0,0 +1,25 @@ +SELECT * FROM Movies; + +SELECT * FROM Movies ORDER BY score DESC; + +SELECT * FROM Movies ORDER BY year ASC; + +SELECT * FROM Movies WHERE score >= 8; + +SELECT * FROM Movies WHERE score <= 7; + +SELECT * FROM Movies WHERE year = 1990; + +SELECT * FROM Movies WHERE year < 2000; + +SELECT * FROM Movies WHERE year BETWEEN 1990 AND 1999; + +SELECT * FROM Movies WHERE genre = 'SciFi'; + +SELECT * FROM Movies WHERE genre = 'SciFi' OR genre = 'Western'; + +SELECT * FROM Movies WHERE genre != 'SciFi'; + +SELECT * FROM Movies WHERE genre = 'Western' AND year < 2000; + +SELECT * FROM Movies WHERE title LIKE '%Matrix%'; From c4d7ec8ca3976378b0a7c54dc00edb70a31a7c84 Mon Sep 17 00:00:00 2001 From: Jonas Finborud Nyman Date: Fri, 24 Jan 2025 15:55:33 +0100 Subject: [PATCH 2/2] Completed Extension --- sql/films/extension1.sql | 5 +++++ sql/films/extension2.sql | 3 +++ sql/films/extension3.sql | 4 ++++ 3 files changed, 12 insertions(+) create mode 100644 sql/films/extension1.sql create mode 100644 sql/films/extension2.sql create mode 100644 sql/films/extension3.sql diff --git a/sql/films/extension1.sql b/sql/films/extension1.sql new file mode 100644 index 0000000..239469c --- /dev/null +++ b/sql/films/extension1.sql @@ -0,0 +1,5 @@ +SELECT AVG(score) FROM movies; + +SELECT COUNT(title) FROM movies; + +SELECT genre, AVG(score) FROM movies GROUP BY genre; diff --git a/sql/films/extension2.sql b/sql/films/extension2.sql new file mode 100644 index 0000000..6fac002 --- /dev/null +++ b/sql/films/extension2.sql @@ -0,0 +1,3 @@ +SELECT title, directors.name, director_id +FROM movies +INNER JOIN directors ON movies.director_id = directors.id; \ No newline at end of file diff --git a/sql/films/extension3.sql b/sql/films/extension3.sql new file mode 100644 index 0000000..4419752 --- /dev/null +++ b/sql/films/extension3.sql @@ -0,0 +1,4 @@ +SELECT directors.name, director_id, COUNT(title) +FROM movies +INNER JOIN directors ON director_id = directors.id +GROUP BY directors.name, director_id; \ No newline at end of file