From 2cc3a0327c75689bcf1ae2496fc88e215a63686a Mon Sep 17 00:00:00 2001 From: Kristian Sylte Date: Wed, 22 Jan 2025 14:41:28 +0100 Subject: [PATCH] done --- sql/movies/create-movies.sql | 13 +++++++++++++ sql/movies/populate-movies.sql | 19 +++++++++++++++++++ sql/movies/statements.sql | 23 +++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 sql/movies/create-movies.sql create mode 100644 sql/movies/populate-movies.sql create mode 100644 sql/movies/statements.sql diff --git a/sql/movies/create-movies.sql b/sql/movies/create-movies.sql new file mode 100644 index 0000000..51fc1a4 --- /dev/null +++ b/sql/movies/create-movies.sql @@ -0,0 +1,13 @@ +create table films( + id serial primary key, + title varchar(255) not null unique, + genre varchar(255) not null, + release_year int not null, + score int not null, + director int references directors(id) not null +); + +create table directors( + id serial primary key, + name varchar(255) not null +); diff --git a/sql/movies/populate-movies.sql b/sql/movies/populate-movies.sql new file mode 100644 index 0000000..5029477 --- /dev/null +++ b/sql/movies/populate-movies.sql @@ -0,0 +1,19 @@ +insert into directors (name) values +('one'), +('two'); + +insert into films (title, genre, release_year, score, director) values +('The Shawshank Redemption', 'Drama', 1994, 9, 1), +('The Godfather', 'Crime', 1972, 9, 1), +('The Dark Knight', 'Action', 2008, 9, 1), +('Alien', 'SciFi', 1979, 9, 1), +('Total Recall', 'SciFi', 1990, 8, 1), +('The Matrix', 'SciFi', 1999, 8, 1), +('The Matrix Resurrections', 'SciFi', 2021, 5, 2), +('The Matrix Reloaded', 'SciFi', 2003, 6, 2), +('The Hunt for Red October', 'Thriller', 1990, 7, 2), +('Misery', 'Thriller', 1990, 7, 2), +('The Power Of The Dog', 'Western', 2021, 6, 2), +('Hell or High Water', 'Western', 2016, 8, 2), +('The Good the Bad and the Ugly', 'Western', 1966, 9, 2), +('Unforgiven', 'Western', 1992, 7, 2); diff --git a/sql/movies/statements.sql b/sql/movies/statements.sql new file mode 100644 index 0000000..18dbed9 --- /dev/null +++ b/sql/movies/statements.sql @@ -0,0 +1,23 @@ +select * from films; +select * from films order by release_year desc; +select * from films order by release_year asc; +select * from films where score >= 8; +select * from films where score <= 8; +select * from films where release_year = 1990; +select * from films where release_year < 2000; +select * from films where release_year > 1990; +select * from films where release_year >= 1990 and release_year <= 1999; +select * from films where genre = "SciFi"; +select * from films where genre = "SciFi" or genre = "Western"; +select * from films where not genre = "SciFi"; +select * from films where genre = "Western" and release_year < 2000; +select * from films where title like "%Matrix%"; + +-- Extension 1 +select avg(score) from films; +select count(*) from films; +select genre, avg(score) from films group by genre; + +-- Extension 2 +select * from films left join directors on films.director = directors.id; +select directors.name, count(films.title) from films inner join directors on films.director = directors.id group by directors.name;