SQL: oppgaver med løsningsforslag

Øv på SQL med oppgaver og løsningsforslag som dekker utvalg, filtrering, sortering, gruppering og JOIN.

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

Denne artikkelen er laget for øving. Du får en serie med oppgaver og forklarte løsningsforslag som går fra enkle til mer krevende SQL-spørringer. Målet er at du skal se mønsteret i hvordan oppgavene bygges opp, og lære å skrive egne løsninger. Les også [oppgaver i programmering](/ressursbank/artikler/programmering/) og [tabeller og databaser](/ressursbank/artikler/tabeller/) for mer trening.

Tenk på oppgavene som et treningsprogram. Først ser du hva som skal hentes ut. Deretter velger du riktige kolonner, tabeller og betingelser. Når du løser flere oppgaver på rad, blir du tryggere på både syntaks og tenkemåte. Det viktigste er ikke å gjøre alt perfekt med en gang, men å forstå hvorfor en løsning fungerer.

Oppgave 1: vis alle produkter

Tabellen heter produkter og har kolonnene produkt_id, produktnavn og pris. Skriv en spørring som viser alle produktene.

Løsningsforslag

```sql SELECT FROM produkter; ```

Dette er den enkleste formen for utvalg. Stjernen betyr at alle kolonner tas med. I mange skoleoppgaver er det riktigere å velge spesifikke kolonner, men det er nyttig å kjenne denne varianten først.

Oppgave 2: vis navn og pris for alle produkter

Skriv en spørring som viser produktnavn og pris.

Løsningsforslag

```sql SELECT produktnavn, pris FROM produkter; ```

Her velger vi bare to kolonner. Dette er bedre enn SELECT når du bare trenger deler av tabellen. Det gjør resultatet ryddigere og tydeligere.

Oppgave 3: vis produkter som koster mer enn 500 kroner

Løsningsforslag

```sql SELECT produktnavn, pris FROM produkter WHERE pris > 500; ```

WHERE brukes til å filtrere på tall. Tegnet > betyr større enn. Du kan også bruke <, >=, <= og = når oppgaven krever det. Husk at filtreringen skjer før resultatet presenteres.

Oppgave 4: vis produkter sortert etter pris fra høyest til lavest

Løsningsforslag

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

DESC betyr synkende rekkefølge. Hvis du skulle sortere alfabetisk eller stigende etter pris, kunne du brukt ASC eller latt det stå uten spesifikasjon i noen systemer.

Oppgave 5: vis antall produkter i hver kategori

Tabellen produkter har kolonnene kategori og produktnavn. Skriv en spørring som teller hvor mange produkter som finnes i hver kategori.

Løsningsforslag

```sql SELECT kategori, COUNT() AS antall FROM produkter GROUP BY kategori; ```

Her samler GROUP BY alle rader med samme kategori. COUNT() teller antallet i hver gruppe. Dette er en klassisk oversiktsoppgave.

Ofte stilte spørsmål

Er SQL et programmeringsspråk?

SQL er et deklarativt spørringsspråk. Det brukes til å beskrive hva du vil hente ut eller endre i en database, ikke nødvendigvis hvordan maskinen skal løse oppgaven trinn for trinn. I praksis oppleves SQL likevel som et helt sentralt språk i dataarbeid, analyse og utvikling.

Må jeg kunne alle kommandoene utenat?

Nei. På VGS er det viktigere å forstå logikken bak SELECT, WHERE, ORDER BY, GROUP BY og JOIN enn å pugge lange lister. Når du skjønner hvordan tabeller henger sammen, blir resten mye enklere å lære.

Hvorfor får jeg feil når jeg skriver spørringer?

De vanligste årsakene er stavefeil i kolonnenavn, manglende anførselstegn rundt tekst, feil rekkefølge på klausuler eller at du bruker en kolonne fra en tabell som ikke er med i spørringen. Les feilmeldingen nøye og kontroller hver del av setningen.

Hva er viktigst til prøve og eksamen?

Du bør kunne lese en tabellstruktur, forklare hva en spørring gjør, og skrive enkle og mellomvanskelige spørringer som filtrerer, sorterer og kobler data. Det er også nyttig å kunne forklare hvorfor en spørring virker, ikke bare kopiere den. Kilder

← Tilbake til ifingo