Denna guide är uppdelad i olika delar. Detta är intro-sidan. Se efterföljande delar i listan nedan:

Structored Query Langauge (SQL) guide, tutorial, kurs på svenska.

SQL Guide

SQL är ett språk som används för att prata med SQL-databaser. En SQL-databas har tabeller med kolumner (tänk Excel, fär varje tab/flik är en tabell), och SQL används för att skapa, uppdatera, ta bort, eller hämta data.

SQL är både enkelt och kraftfullt. Alla som jobbar med data borde lära sig SQL 😁
Med enkelt menar jag att det inte är så mycket man behöver kunna, du klarar dig långt på kommandona SELECT, UPDATE, DELETE och INSERT, och det är hyffsat logiskt. Och med kraftfullt menar jag att det som annars skulle kräva många raders programmersingskod kan sammanfattas med en enda rad/sats SQL. Här är ett exempel:

SELECT förnamn, efternamn, ålder FROM kunder WHERE förnamn="Johan" ORDER BY ålder;

Detta hämtar kolumnerna förnamn, efternamn och ålder från tabellen kunder, och filtrerar datan så att endast de som har förnamn=Johan kommer med, och så sorteras raderna efter ålder.

Om samma sak skulle göras i JavaScript skulle det se ut ungefär så här:

var rader = kunder
.map(kund => {förnamn:kund.förnamn, efternamn:kund.efternamn, ålder:kund.ålder})
.filter(kund => kund.förnamn=="johan")
.sort((a,b) => a<b ? -1 : a>b ? 1 : 0);

Vad är lättare att förstå, JavaScript-koden eller SQL-koden ? Eventuellt att jag skulle kunna göra JavaScript-koden mer verbose (mera rader kod) för att på så sätt göra den enklare att förstå. Men SQL koden är i gämförelse både enkel och konsis.

För att göra SQL koden tydligare brukar jag skriva själva SQL-kommandona i stora bokstäver, och om det är en mer komplicerad SQL-sats kan det vara bra att bryta ner den till flera rader:

SELECT förnamn, efternamn, ålder 
FROM kunder 
WHERE förnamn="Johan" 
ORDER BY ålder;

Liksom i JavaScript så kan man avsluta SQL-satsen med ett semi-kolon. Men en del SQL-motorer kräver inte det.

Själva SQL-koden brukar kallas sats / SQL-sats och själva datan som man hämtar brukar kallas records, rader eller data-records.

Tabeller och kolumner

Här är ett exempel på en tabell med medlemmar:

id förnamn efternamn föddår favoritfärg
1 Sven Svensson 1975 grön
2 Sivert Nilsson 1955 röd
3 Camilla Åkesson 1995 lila
4 Gustav Berglund 1989 svart
5 Jon Svensson 1979 orange
6 Axel Karlsson 1994 grön

När du visualiserar datan i SQL-databaser, tänk då tabeller (exempel medlems-tabellen åvan), kolumner (id, efternamn, föddår, favoritfärg) och rader.

SELECT

Det vanligsta kommandot är SELECT, följt av vilka kolumner man vill hämta. Vill man hämta alla kolumner går det bra med en stjärna/asterisk *

SELECT-satsen måste ha FROM för att tala om från vilken tabell datan ska hämtas.

Här är ett exempel som hämnar alla kolumner från tabellen "medlemmar":

SELECT * FROM medlemmar

WHERE

Om vi till exempel vill hämta alla rader/records med medlemmar födda efter 1990:

SELECT * FROM medlemmar WHERE föddår > 1990

Eller endast de med favoritfärgen "grön":

SELECT * FROM medlemmar WHERE favoritfärg = "grön"

ORDER BY

Om man vill ha datan i en speciell ordning.

Datan sorteras då kronologiskt, eller alfabetisk.

ASC eller DESC används för att sortera uppåt eller neråt, där ASC / uppåt är default (a-z och 1-9) och med DESC blir det baklänges (z-a och 9-1)

Exempel: Sortera alla medlemmar efter ålder:

SELECT * FROM medlemmar ORDER BY föddår

Eller sortera efter efternamn:

SELECT * FROM medlemmar ORDER BY efternamn

Om vi vill att medlemmar vars efternamn börjar med ZÄÅ ska hamna först lägger vi till DESC:

SELECT * FROM medlemmar ORDER BY efternamn DESC

WHERE

WHERE efterföljs av logiska regler. Till exempel likamed-tecken, över > eller < under tecken, och NOT användas för negation.

Exempel, hämta en lista på medlemmar som INTE gillar färgen grön:

SELECT * FROM medlemmar WHERE NOT favoritfärg = "grön"

WHERE änvänds också när man gör en UPDATE eller DELETE...

UPDATE

UPDATE används för att uppdatera rader/records i en tabell. Exempel: Sätt namn till "Nisse"

UPDATE medlemmar SET förnamn = "Nisse"

Hoppsan! Vi glömde WHERE så nu uppdaterades alla medlemmar så att de fick Nisse som förnamn. Om du har tur så finns det en ångra-funktion, eller så måste du hämta om datan från backup. Detta är vanligaste misstaget i SQL, att man glömmer WHERE, så om du ska göra en UPDATE eller DELETE, kolla alltid en extra gång så att du har med WHERE!

UPDATE medlemmar SET förnamn = "Nisse" WHERE id = 6

För att göra varje rad unik så brukar man ge varje rad/record ett unikt id/löpnummer så att det går att precisera exakt vilken medlem man vill uppdatera eller ta bort.

DELETE

Låt säga att Karlsson inte vill vara med i föreningen längre, då kan vi ta bort hans medlems-record:

DELETE FROM medlemmar WHERE id = 6

Notera att vi använde ID, vi skulle även kunna skrivit WHERE efternamn="Karlsson", men då hade vi kunnat råka ta bort andra medlemmar vars efternamn också är Karlsson.


Detta är första delen i min SQL-tutorial. Du kan nu tillräckligt för att göra något farligt 😃

Kommentera gärna om det var något åvan som du inte förstod eller har andra funderingar:

Jag kommer att posta efterföljande delar i form av blog-poster:


Följ mig via RSS:   RSS https://zäta.com/rss.xml (ange adressen i din feed-läsare)