SQL, Structured Query Language, är instruktioner för en dator att hämta eller göra något i en relationsdatabas. Det kan vara att hämta ut alla kunder från en kundtabell, jämföra information i olika tabeller eller att skapa en ny tabell.
Man säger oftast att man skriver SQL, men det finns olika typer av SQL-kommando eller statements och det kan vara svårt att förstå vad man faktiskt behöver lära sig.
Ställa frågor till databasen med SQL
SQL kan användas både för att skapa och hantera en relationsdatabas och tabeller, ge åtkomst till användarkontno och för att arbeta med själva datat i tabellerna.
För att ställa frågor till databasen, t ex ”ta fram alla kunder som gjorde ett köp förra veckan” används kommandon i av den typ som kallas för Data Query Language, DQL. Egentligen spelar det inte så stor roll vilken typ av SQL kommando man använder, men det kan vara bra att förstå att man inte behöver lära sig allt för att kunna jobba med data. DQL och lite DDL, Data Defintion Language i form av CREATE (skapa) kommer man väldigt långt på, de flesta som jobbar med data behöver aldrig hantera en databas eller användarkonton.
När skriver man SQL
En relationsdatabas är en databas där data är uppdelad i tabeller strukturerade i rader och kolumner. Datat i tabellerna kommer från olika system och program som använts i olika affärsprocesser, t ex ett CRM-system, ett ERP-system eller kanske onlineköp. Informationen i dessa affärssystem sparas i många tabeller. Varje tabell består av en del av informationen, t ex alla kunder, som i sin tur har en koppling till andra tabeller, t ex alla köp. Man delar upp datat i i ett system i flera tabeller för att det ska vara hanterbart för systemet det används i. En tabell kan innehålla hundratals kolumner eller bara ett fåtal, och miljoner med rader eller betydligt färre.
När man vill använda datat i dessa tabeller behöver man välja ut de kolumner och rader som är relevanta för det man vill göra, beskriva hur de ska kombineras och vad man ska göra med resultatet. För att göra det använder man SQL, alltså instruktioner till databasen. Det man skriver kallas för queries.
Varför skriver man SQL
Datat i en databas vill man ofta använda i rapporter som gör att man kan visualisera och göra datat tillgängligt för fler att förstå. Det kan vara KPI:rapporter, alltså rapporter där man följer de viktigaste nyckeltalen eller mera adhoc-rapporter där man vill följa upp något mera tillfälligt. Det vanligaste är att man skapar en koppling mellan ett rapportverktyg och relationsdatabasen och designar sin rapport i rapportverktyget. Business Intelligence-verktyg som Power BI eller Tableau är vanligt förekommande verktyg för rapporter.
Man kan också exportera data mera manuellt från en relationsdatabas, men det gör man mer under en analysprocess eller om man snabbt ska få ihop en tillfällig rapport där man inte behöver tänka på uppdateringar eller underhåll.
SQL används också för att analysera data i en databas, men oftast är inte databasen slutdestinationen utan man vill använda resultatet av ens SQL-kod i ett annat system.
SQL används också för att jobba i själva databasen med att skapa nya tabeller och struktur, men det är oftast ett arbete som tillhör de mer tekniska rollerna som har ansvar för hela arkitekturen (som i sig är en hel vetenskap).
Vart finns databasen?
En databas kan finnas i molnet, på egna, lokala servrar i något som kallas för on-prem eller blandat. Alla digitala system och program behöver en plats där datat lagras och och enligt Microsoft används SQL i alla typer av högpresterande, datacentrerade program.
För den som jobbar med data är det inte så viktigt med placering av databasen så länge man får access. Däremot är den frågan viktig för den som utvecklar en digital programvara eller är ansvarig över en organisations datalagring. Det finns också olika typer av databaser, men just SQL används i en relationsdatabas, vissa kallar det t.o.m. för SQL-databas.
Transact SQL (T-SQL), PostgreSQL?
Det finns flera varianter av SQL, precis som att det finns flera varianter av relationsdatabaser, exempelvis ostgresql (Postgres) och T-SQL, som används i Microsofts program. Vissa system och varumärken har t.o.m. sina egna varianter som bara används i just deras program, exempelvis Salesforce Object Query Language (SOQL)
För den person som ska använda själva datat i databasen eller i dataplattformen, exempelvis Snowflake, upplever vi inte att det spelar så stor roll vad det är. Man lär sig fort de olika “dialekten”, alltså hur man skriver och anpassar sig till det som finns. Alla databaser ser olika ut, det som är relevant för den som skriver SQL för att använda datat, är att lära sig att hitta i databasen och förstå kopplingen mellan data och den affärsprocess som datat tillhör eller ska användas i.
Vad är svårast med SQL
Det svåraste med SQL är att man måste börja med slutet först. Resultatet av det man skriver, alltså instruktionerna, kommer alltid i tabellformat. Det betyder att man måste tänka till hur innehållet ska passa ett format med kolumner och värden. Det kan låta enkelt, men det kan bli riktigt komplext då man ofta vill få ut både uträkningar och alla detaljer samtidigt, så man kan behöva dela upp det i flera resultat som sedan kombineras i rapportverktyget, i en datamodell (kallas semantisk modell i Power BI).
I början är det lite svårt att navigera med alla begrepp som kan ha flera användningsområden, men vårt tips är att våga fråga vad som menas. Data lagras ofta i flera lager, exempelvis i Databricks där man lagrar i medallion-struktur och det är omöjligt att lära sig allt eller att hålla sig uppdaterad i allt.
Vad är viktigast
Det viktigaste att komma ihåg när man skriver SQL för att bearbeta data är att alltid testa så att man får korrekt resultat. Kör lite extra kod och ta ut data i delar och kontrollera i exempelvis Excel. Skapar man dataset för ett BI-verktyg, får man räkna med att det dyker upp konstigheter när man tar fram grafer. Vårt tips är att alltid räkna med extra tid för att korrigera (och felsöka).
Lär dig SQL
SQL kan precis som alla språk upplevas som komplext. Många kurser inom programmering är också av någon anledning onödigt komplexa. Vi utvecklar kurser där vi försöker göra det krångliga enklare att förstå, genom att förklara och hålla en röd tråd genom kursen som ger kontext och sammanhang.