SQL: eksempel og forklaring

Se et konkret SQL-eksempel med nettbutikk, tabeller og JOIN, forklart trinn for trinn for tryggere læring.

Faglig kvalitetssikret av lærere og toppstudenter · Følger læreplanen (LK20) · Sist oppdatert 2026-08-25

Den beste måten å lære SQL på er ofte å se et konkret eksempel. I denne artikkelen bruker vi en liten nettbutikk som modell. Da kan du følge hele kjeden fra tabellstruktur til ferdig spørring. Målet er å vise hvordan en database kan deles opp i flere tabeller, og hvordan SQL binder dem sammen igjen. Dette er helt typisk for oppgaver på VGS og i praktisk dataarbeid.

Se også [databaser i praksis](/ressursbank/artikler/databaser/) og [tabeller og relasjoner](/ressursbank/artikler/tabeller/) hvis du vil forstå modellen enda bedre.

Eksempeldatabase: en enkel nettbutikk

La oss tenke oss tre tabeller. Den første heter kunder og inneholder kunde_id, navn og e-post. Den andre heter produkter og inneholder produkt_id, produktnavn, kategori og pris. Den tredje heter bestillinger og inneholder bestilling_id, kunde_id, produkt_id og dato. Dette er en klassisk modell fordi kundedata, produktdata og ordredata hører sammen, men ikke bør blandes i én stor tabell.

Når data deles opp på denne måten, blir det lettere å vedlikeholde og oppdatere dem. Hvis en kunde bytter e-postadresse, oppdaterer du bare én rad i kunden-tabellen. Hvis en pris endrer seg, oppdaterer du produkt-tabellen. Bestillingene kan fortsatt peke på de riktige objektene ved hjelp av id-feltene. SQL bruker disse koblingene når du vil se data samlet.

Først: hent ut alle produkter

La oss starte enkelt. Du vil se alle produkter i butikken, sortert etter pris.

```sql SELECT produktnavn, kategori, pris FROM produkter ORDER BY pris DESC; ```

Denne spørringen er enkel, men den viser tre viktige ting. Du velger bestemte kolonner, du leser fra én tabell, og du sorterer resultatet. Dersom oppgaven ber deg om dyreste produkter først, er dette nok. Når du leser resultatet, ser du raskt hvilke varer som ligger høyest i prislisten.

Deretter: filtrer bare varene i én kategori

Nå vil du kanskje se bare hodetelefoner eller bare skoleutstyr. Da bruker du WHERE.

```sql SELECT produktnavn, pris FROM produkter WHERE kategori = 'skoleutstyr'; ```

Her får du kun varer som tilhører kategorien skoleutstyr. Dette er typisk for oppgaver der du skal vise et utvalg, ikke hele datasettet. Det er også en god måte å lære at tekstverdier ofte må stå i enkle anførselstegn i SQL.

Hent ut antall bestillinger per kunde

Nå kommer det mer interessante. Du vil vite hvor mange bestillinger hver kunde har gjort. Dette krever at du grupperer dataene.

```sql SELECT kunde_id, COUNT() AS antall_bestillinger FROM bestillinger GROUP BY kunde_id ORDER BY antall_bestillinger DESC; ```

Ofte stilte spørsmål

Hva er forskjellen på en tabell og en database?

En database er samlingen som lagrer flere tabeller og strukturerte data. En tabell er en del av databasen og består av rader og kolonner med et bestemt tema, for eksempel elever, bestillinger eller produkter.

Hvorfor bruker man JOIN?

JOIN brukes når informasjon er delt mellom flere tabeller. Da kan du hente data sammenhengende, for eksempel kundenavn fra én tabell og ordrelinjer fra en annen tabell.

Hva betyr det å aggregere data?

Å aggregere betyr å samle mange enkeltverdier til én oppsummering, for eksempel antall elever, gjennomsnittskarakter eller total omsetning. SQL har funksjoner som COUNT, SUM, AVG, MIN og MAX for dette.

Hvordan blir jeg trygg i SQL?

Start med små oppgaver, skriv enkle spørringer for hånd, test ofte, og forklar høyt hva hver klausul gjør. Når du kan lese en tabell og beskrive hva resultatet skal bli, er du godt på vei. Kilder

← Tilbake til ifingo