Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions sql/movies/create-movies.sql
Original file line number Diff line number Diff line change
@@ -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
);
19 changes: 19 additions & 0 deletions sql/movies/populate-movies.sql
Original file line number Diff line number Diff line change
@@ -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);
23 changes: 23 additions & 0 deletions sql/movies/statements.sql
Original file line number Diff line number Diff line change
@@ -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;