From 0f6b4d1b571f8ccff2be9414bb3f01555ce3b4fe Mon Sep 17 00:00:00 2001 From: Kristoffer Blucher Date: Tue, 21 Jan 2025 14:34:34 +0100 Subject: [PATCH 1/4] finished core --- sql/products/films_exercise.sql | 67 +++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 sql/products/films_exercise.sql diff --git a/sql/products/films_exercise.sql b/sql/products/films_exercise.sql new file mode 100644 index 0000000..8fd1211 --- /dev/null +++ b/sql/products/films_exercise.sql @@ -0,0 +1,67 @@ + CREATE TABLE films ( + id SERIAL PRIMARY KEY, + title VARCHAR(255) UNIQUE, + genre VARCHAR(50) , + release_year INT , + score INT CHECK (score BETWEEN 0 AND 10) +); + + +INSERT INTO films (title, genre, release_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); + +SELECT * FROM films; + +SELECT * FROM films +ORDER BY score DESC; + +SELECT * FROM films +ORDER BY score; + +SELECT * FROM films +WHERE score >= 8; + +SELECT * FROM films +WHERE score <= 7; + +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 BETWEEN 1990 and 1999; + +SELECT * FROM films +WHERE genre = 'SciFi'; + +SELECT * FROM films +WHERE genre = 'SciFi' OR genre= 'Western'; + +SELECT * FROM films +WHERE genre NOT IN ('SciFi'); + +SELECT * FROM films +WHERE genre = 'Western' AND release_year < 2000; + +SELECT * FROM films +WHERE title LIKE '%Matrix%'; + From 4d0c55da58e3bcd44255b53c54393710c8f15836 Mon Sep 17 00:00:00 2001 From: Kristoffer Blucher Date: Tue, 21 Jan 2025 14:38:28 +0100 Subject: [PATCH 2/4] Finished Core --- .vs/slnx.sqlite | Bin 0 -> 90112 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .vs/slnx.sqlite diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..d927d3f44ac603291d4caa45cc8871b986b553b5 GIT binary patch literal 90112 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 literal 0 HcmV?d00001 From a33b102da75c3d90d04a13340c6510ebb95bfd1c Mon Sep 17 00:00:00 2001 From: Kristoffer Blucher Date: Tue, 21 Jan 2025 15:18:07 +0100 Subject: [PATCH 3/4] Finished Exercise, core + extensions --- .vs/ProjectSettings.json | 3 + .vs/api-sql-intro/v17/.wsuo | Bin 0 -> 28160 bytes .../v17/DocumentLayout.backup.json | 70 ++++++++++++++++++ .vs/api-sql-intro/v17/DocumentLayout.json | 70 ++++++++++++++++++ sql/products/films_exercise.sql | 58 +++++++++++++++ 5 files changed, 201 insertions(+) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/api-sql-intro/v17/.wsuo create mode 100644 .vs/api-sql-intro/v17/DocumentLayout.backup.json create mode 100644 .vs/api-sql-intro/v17/DocumentLayout.json diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/api-sql-intro/v17/.wsuo b/.vs/api-sql-intro/v17/.wsuo new file mode 100644 index 0000000000000000000000000000000000000000..bb49f0fff71708195732fc100b809a4e3bee049b GIT binary patch literal 28160 zcmeHPON<;x8Lo-#kQhQ9HV%Y z-CbSXf7M@q{eS({_3t}xKlzvM{OFm#3RgNNwuw7;9~BQf@*|FO@q`e2as3c*=kDFR zyv6%C4bv2H;Ed?tuP0_iNi5>n6*t+H(rJ&_vDWAB9r4r?|9*Y`@z$Rs&!gOLW~{=e zK(QmPh?hXUfwPjhG2$)jZ|{KwI@!JcuJ_efkPY!QlTDv=mqZIS=n5S;3tm(KyzG#-&?p%-Oh9lbPdpb8Me-VB|IxG zn>M&7G}AH~RDoc1InP=!nGmnnTd{i^h5!5;{Ep1 z*2uR12+DHIGRe^QhOYoIxq(RDb>`MOkVUY zEmKD=>ZX43t4|8_IVWI$%CqtIzc>-R-w%(h^&q za1N5V1pP?sLrcJ1XF~s*`iFBqS^At~+V+pumNO4(98w|WGst7VbL^jn6i_cwHyUfR zgh355pwD?I=b5tfo&0z5cmXw`6}B|tEbJd;aS@d3u*qq~hX$2O=Nk{;DgM4r&=-*AZ zpSEwl{~|y71@yfoiEW1scx7Eb90Ps&D)cwVgZ^uM51jhQ@ZU+_o+END}has5B~kMse#=EF6oy}%6c9Iy}Iy3c;# zdEfvr$@)(U&pX>R=ejrXoJ@;EQ_uS+kX^Mf`l%`;y%OiY zis{+3@xEn9Fy|6Ck#_;Pl{F9C!1)56w{l}x(VYe2_)Xxb;x~a3w8|PNk%o?IA$~ih zHE)B5Y)RK_#jmHd6$W~eJvTiPMEUKZ#s-esRPo+j^BW?CaY5csi}bi#z}bJ>Y{BoQ zME>0^(4gn2kt~_Qw~Z-nM-$pL19_q}{eDW@V0}rwiXPz#ilvpNb!5=@X-#!+T*Ii~ z=;)#yP0VvCS$~*P$zof&=G=uoAXfs|nrYEl+{@5Hts7{?!0y@C)7}oNb<^7)8)vi- zEvXc7cs^1OxC+tlnk3QhqQ7eS4d~cx77C{xq9&eb`x&H z@d)OsLfjHL_;h9Te;U^%?BP)$D?Cr&EQY@#YN?Fz9*^n? zUE3~x94XF4@pmg1FPGA4DW>GpYC?&{icuw3ish7OG#4#oqvdkBkXT(gy3jPVaet7w zv(afS_nMu>uHLHln%DHXfU5M9@vAf;8?~-p?dgim*3Izo8{=2npN|vN=~v^|Y3mrd zQs~t6a<|&n-x|OA|2LKnYWK_WYd0Zt#~^aLm#Wb~{>(#2FrehgJtyZ&2CYh}(Syj{H$$BgkuT@v`hfzEh&(NU78d^LW zud7O3jl%v#6Pl9EBvd6?i^np_v|6jB()I&c^MP2Z9*<|^ik?W<6*Z>Sm1;DdR`gm` zt7@v2(KL0n7UtuTosCALnRset<2)3iLX4o z&fHtcl^_G(pmmoAKCH$Lh6jB5>f1XfdgFe0j_Y?Y8-m{>=`qIO9rD*NQJ`*bagWGJ zk+lf$-GJ-*WwhVkBY^DzVS2zg;Jwl|nf4g$ZuT2_*1aG6@Y?tOS^4Teu79oZuRDK# z$A7SneqC5%lN<=g{{uGQUCnh{PirNW^BK8h$NzA0##hTcbqj?K_6r6P|HB!C-7FdU z0muKC`=7a;T(NK%H%5BMN^Thc z Date: Tue, 21 Jan 2025 15:21:07 +0100 Subject: [PATCH 4/4] little fix --- sql/products/films_exercise.sql | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/sql/products/films_exercise.sql b/sql/products/films_exercise.sql index 974fc58..ed123c7 100644 --- a/sql/products/films_exercise.sql +++ b/sql/products/films_exercise.sql @@ -76,6 +76,19 @@ directorId INT, FOREIGN KEY (directorId) REFERENCES directors2(id) ); +CREATE TABLE directors2 ( + id SERIAL PRIMARY KEY, + name VARCHAR(50) +); + +INSERT INTO directors2 (name) +VALUES + ('Steven Spielberg'), + ('Martin Scorsese'), + ('Christopher Nolan'), + ('Alfred Hitchcock'), + ('Woody Allen'), + ('Kristoffer Blücher'); INSERT INTO films2 (title, genre, release_year, score, directorId) @@ -95,21 +108,6 @@ VALUES -CREATE TABLE directors2 ( - id SERIAL PRIMARY KEY, - name VARCHAR(50) -); - - -INSERT INTO directors2 (name) -VALUES - ('Steven Spielberg'), - ('Martin Scorsese'), - ('Christopher Nolan'), - ('Alfred Hitchcock'), - ('Woody Allen'), - ('Kristoffer Blücher'); - SELECT films2.title AS film_title, films2.genre, @@ -119,6 +117,7 @@ SELECT films2.title AS film_title, FROM films2 JOIN directors2 ON films2.directorId = directors2.id; + SELECT directors2.name, COUNT(films2.id) AS number_of_films FROM directors2 JOIN films2 ON directors2.id = films2.directorId