From ba6c393b7b502c910e1eb901302b61dafb5decfd Mon Sep 17 00:00:00 2001 From: ASaug Date: Wed, 22 Jan 2025 14:16:26 +0100 Subject: [PATCH 1/2] added all --- sql/films/create-films.sql | 7 +++++++ sql/films/extention-2,3.sql | 41 +++++++++++++++++++++++++++++++++++++ sql/films/insert-films.sql | 15 ++++++++++++++ sql/films/select-films.sql | 20 ++++++++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 sql/films/create-films.sql create mode 100644 sql/films/extention-2,3.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..2d4b174 --- /dev/null +++ b/sql/films/create-films.sql @@ -0,0 +1,7 @@ +CREATE TABLE films( + id serial primary key, + title varchar(1000) unique, + genre varchar(1000), + released Integer(4), + score Integer(2), +) diff --git a/sql/films/extention-2,3.sql b/sql/films/extention-2,3.sql new file mode 100644 index 0000000..bef6b82 --- /dev/null +++ b/sql/films/extention-2,3.sql @@ -0,0 +1,41 @@ +-- Extention 2 + +CREATE TABLE films_2( + id serial primary key, + title varchar(1000) unique, + genre varchar(1000), + released Integer(4), + score Integer(2), + FOREIGN KEY(directorID) REFERENCES directors(id) +) + +CREATE TABLE directors( + id serial primary key, + name varchar(70) +) + +INSERT INTO directors (name) VALUES +('Bob'), +('John'), +('Trauma'); + + + +insert into films_2(title, genre, released, score) VALUES ('The Shawshank Redemption', 'Drama', 1994, 9, 1); +insert into films_2(title, genre, released, score) VALUES ('The Godfather', 'Crime', 1972, 9, 1); +insert into films_2(title, genre, released, score) VALUES ('The Dark Knight', 'Action', 2008, 9, 1); +insert into films_2(title, genre, released, score) VALUES ('Alien', 'SciFi', 1979, 9, 1); +insert into films_2(title, genre, released, score) VALUES ('Total Recall', 'SciFi', 1990, 8, 1); +insert into films_2(title, genre, released, score) VALUES ('The Matrix', 'SciFi', 1999, 8, 2); +insert into films_2(title, genre, released, score) VALUES ('The Matrix Resurrections', 'SciFi', 2021, 5, 2); +insert into films_2(title, genre, released, score) VALUES ('The Matrix Reloaded', 'SciFi', 2003, 6, 2); +insert into films_2(title, genre, released, score) VALUES ('The Hunt for Red October', 'Thriller', 1990, 7, 1); +insert into films_2(title, genre, released, score) VALUES ('Misery', 'Thriller', 1990, 7, 3); +insert into films_2(title, genre, released, score) VALUES ('The Power of the Dog', 'Western', 2021, 6, 1); +insert into films_2(title, genre, released, score) VALUES ('Hell or High Water', 'Western', 2016, 8, 1); +insert into films_2(title, genre, released, score) VALUES ('The Good the Bad and the Ugly', 'Western', 1966, 9, 1); +insert into films_2(title, genre, released, score) VALUES ('Unforgiven', 'Western', 1992, 7, 2); + + +SELECT * FROM films_2 INNER JOIN directors ON films_2.directorID=directors.id; +SELECT directors.name, COUNT(films_2.title) from directors inner join films_2 on directors.id=films_dk.director_id GROUP BY directors.name; diff --git a/sql/films/insert-films.sql b/sql/films/insert-films.sql new file mode 100644 index 0000000..63d6059 --- /dev/null +++ b/sql/films/insert-films.sql @@ -0,0 +1,15 @@ +insert into films(title, genre, released, score) VALUES ('The Shawshank Redemption', 'Drama', 1994, 9); +insert into films(title, genre, released, score) VALUES ('The Godfather', 'Crime', 1972, 9); +insert into films(title, genre, released, score) VALUES ('The Dark Knight', 'Action', 2008, 9); +insert into films(title, genre, released, score) VALUES ('Alien', 'SciFi', 1979, 9); +insert into films(title, genre, released, score) VALUES ('Total Recall', 'SciFi', 1990, 8); +insert into films(title, genre, released, score) VALUES ('The Matrix', 'SciFi', 1999, 8); +insert into films(title, genre, released, score) VALUES ('The Matrix Resurrections', 'SciFi', 2021, 5); +insert into films(title, genre, released, score) VALUES ('The Matrix Reloaded', 'SciFi', 2003, 6); +insert into films(title, genre, released, score) VALUES ('The Hunt for Red October', 'Thriller', 1990, 7); +insert into films(title, genre, released, score) VALUES ('Misery', 'Thriller', 1990, 7); +insert into films(title, genre, released, score) VALUES ('The Power of the Dog', 'Western', 2021, 6); +insert into films(title, genre, released, score) VALUES ('Hell or High Water', 'Western', 2016, 8); +insert into films(title, genre, released, score) VALUES ('The Good the Bad and the Ugly', 'Western', 1966, 9); +insert into films(title, genre, released, score) VALUES ('Unforgiven', 'Western', 1992, 7); + diff --git a/sql/films/select-films.sql b/sql/films/select-films.sql new file mode 100644 index 0000000..d6ba0ea --- /dev/null +++ b/sql/films/select-films.sql @@ -0,0 +1,20 @@ +SELECT * FROM films; +SELECT * FROM films ORDER BY score DESC; +SELECT * FROM films ORDER BY released ASC; +SELECT * FROM films WHERE score > 8; +SELECT * FROM films WHERE score < 7; +SELECT * FROM films WHERE released == 1990; +SELECT * FROM films WHERE released < 2000; +SELECT * FROM films WHERE released > 1990; +SELECT * FROM films WHERE released > 1990 AND released < 2000; +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 released < 2000; +SELECT * FROM films WHERE title LIKE '%Matrix%'; + +-- Extention 1 + +SELECT AVG(score) FROM films; +SELECT COUNT(*) FROM films; +SELECT genre, AVG(score) FROM films GROUP BY genre; From bb4795d83d914143fa956a3a34dc402223ed92fa Mon Sep 17 00:00:00 2001 From: ASaug Date: Wed, 22 Jan 2025 22:32:20 +0100 Subject: [PATCH 2/2] fixed mistakes --- sql/films/create-films.sql | 6 ++--- .../{extention-2,3.sql => extentions.sql} | 24 ++++++++++--------- sql/films/select-films.sql | 10 ++++---- 3 files changed, 21 insertions(+), 19 deletions(-) rename sql/films/{extention-2,3.sql => extentions.sql} (88%) diff --git a/sql/films/create-films.sql b/sql/films/create-films.sql index 2d4b174..0946058 100644 --- a/sql/films/create-films.sql +++ b/sql/films/create-films.sql @@ -2,6 +2,6 @@ CREATE TABLE films( id serial primary key, title varchar(1000) unique, genre varchar(1000), - released Integer(4), - score Integer(2), -) + released int, + score int + ) diff --git a/sql/films/extention-2,3.sql b/sql/films/extentions.sql similarity index 88% rename from sql/films/extention-2,3.sql rename to sql/films/extentions.sql index bef6b82..94b3819 100644 --- a/sql/films/extention-2,3.sql +++ b/sql/films/extentions.sql @@ -1,18 +1,20 @@ -- Extention 2 +CREATE TABLE directors( + id serial primary key, + name varchar(70) +) + CREATE TABLE films_2( id serial primary key, title varchar(1000) unique, genre varchar(1000), - released Integer(4), - score Integer(2), + released int, + score int, + directorID int, FOREIGN KEY(directorID) REFERENCES directors(id) ) -CREATE TABLE directors( - id serial primary key, - name varchar(70) -) INSERT INTO directors (name) VALUES ('Bob'), @@ -26,15 +28,15 @@ insert into films_2(title, genre, released, score) VALUES ('The Godfather', 'Cri insert into films_2(title, genre, released, score) VALUES ('The Dark Knight', 'Action', 2008, 9, 1); insert into films_2(title, genre, released, score) VALUES ('Alien', 'SciFi', 1979, 9, 1); insert into films_2(title, genre, released, score) VALUES ('Total Recall', 'SciFi', 1990, 8, 1); -insert into films_2(title, genre, released, score) VALUES ('The Matrix', 'SciFi', 1999, 8, 2); -insert into films_2(title, genre, released, score) VALUES ('The Matrix Resurrections', 'SciFi', 2021, 5, 2); -insert into films_2(title, genre, released, score) VALUES ('The Matrix Reloaded', 'SciFi', 2003, 6, 2); +insert into films_2(title, genre, released, score) VALUES ('The Matrix', 'SciFi', 1999, 8, 1); +insert into films_2(title, genre, released, score) VALUES ('The Matrix Resurrections', 'SciFi', 2021, 5, 1); +insert into films_2(title, genre, released, score) VALUES ('The Matrix Reloaded', 'SciFi', 2003, 6, 1); insert into films_2(title, genre, released, score) VALUES ('The Hunt for Red October', 'Thriller', 1990, 7, 1); -insert into films_2(title, genre, released, score) VALUES ('Misery', 'Thriller', 1990, 7, 3); +insert into films_2(title, genre, released, score) VALUES ('Misery', 'Thriller', 1990, 7, 1); insert into films_2(title, genre, released, score) VALUES ('The Power of the Dog', 'Western', 2021, 6, 1); insert into films_2(title, genre, released, score) VALUES ('Hell or High Water', 'Western', 2016, 8, 1); insert into films_2(title, genre, released, score) VALUES ('The Good the Bad and the Ugly', 'Western', 1966, 9, 1); -insert into films_2(title, genre, released, score) VALUES ('Unforgiven', 'Western', 1992, 7, 2); +insert into films_2(title, genre, released, score) VALUES ('Unforgiven', 'Western', 1992, 7, 1); SELECT * FROM films_2 INNER JOIN directors ON films_2.directorID=directors.id; diff --git a/sql/films/select-films.sql b/sql/films/select-films.sql index d6ba0ea..8f2f7d7 100644 --- a/sql/films/select-films.sql +++ b/sql/films/select-films.sql @@ -3,14 +3,14 @@ SELECT * FROM films ORDER BY score DESC; SELECT * FROM films ORDER BY released ASC; SELECT * FROM films WHERE score > 8; SELECT * FROM films WHERE score < 7; -SELECT * FROM films WHERE released == 1990; +SELECT * FROM films WHERE released = 1990; SELECT * FROM films WHERE released < 2000; SELECT * FROM films WHERE released > 1990; SELECT * FROM films WHERE released > 1990 AND released < 2000; -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 released < 2000; +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 released < 2000; SELECT * FROM films WHERE title LIKE '%Matrix%'; -- Extention 1