Idag kikade vi närmre på relationsdatabasen mySQL och vad som skiljer sådana relationsdatabaser åt från dokumentdatabaser (som t.ex. Firestore som vi kikat på tidigare).

Vi passade även på att förbättra våra EJS-skills genom att dela upp vår EJS-kod i ”partials” som vi sedan inkluderade, så att vi kan få ett enhetligt utseende.

Se branchen för lesson-4 på GitHub för den koden vi skrev.


Databasen

Vi skapade databasen fika och i den tabellen cafees med följande struktur (för kolumnen id så valde vi även PRIMARY under ”Index” och kryssade i rutan ”A_I” (auto-increment):

Därefter fyllde vi den med lite olika caféer och kikade på de olika SQL-queries vi kan köra.

Hämta ut alla caféer från tabellen cafees

SELECT * FROM cafees

Hämta ut caféet med ID 2

SELECT * FROM cafees 

Hämta ut alla caféer i Lund

SELECT * FROM cafees WHERE city = 'Lund'

Skapa ett nytt café

INSERT INTO cafees (name, address, city) VALUES ('Hemma hos Johan', 'Kaffevägen 1', 'Lund')

Uppdatera city för caféet med ID 4

UPDATE cafees SET city = 'Kaffestad' WHERE id = 4

Uppdatera address & city för caféet med ID 3

UPDATE cafees SET address = 'Te-gatan 42", city = 'Teby' WHERE id = 3

Ta bort caféet med ID 5

DELETE FROM cafees WHERE id = 5

Länkar

W3Schools SQL Tutorial

https://www.w3schools.com/sql/

EJS Template Engine

https://ejs.co/

mysql npm-paket

https://www.npmjs.com/package/mysql


Workshop/självstudier

Ta hem den senaste versionen av vår 04-cafees från lesson-4 branchen.

Se om du kan få till det så att när man surfar in på /cafees/1 så hämtas caféet med id 1 och view:en cafees/show renderas (och så att /cafees/2 hämtar caféet med id 2 och view:en cafees/show renderas med det caféet osv).

Tips: i Express behöver du använda route-parametrar (se avsnittet ”Route Parameters” i Express-dokumentationen) och i databas-query:n behöver du använda WHERE.