Leksjon 1: Tabeller og enkle spørringer

En database er en logisk samling av data. Vi jobber med databaser via et databasehåndteringssystem (DBMS = DataBase Management System), ofte ved å bruke spørrespråket SQL. I en relasjonsdatabase er data organisert i tabeller.

I denne første leksjonen skal du lære hva en databasetabell er, hvordan slike tabeller lar seg representere digitalt, og hvordan man kan hente ut informasjon fra tabeller med SQL-spørringer.

Kom i gang med denne leksjonen

Læringsmål

Pensum

Kapittel 2.1-2.4 fra Databasesystemer.

Nettsidene til læreboken

Forelesning

Kapittel 2: Spørringer mot én tabell

De siste lysarkene om gruppering og mengdefunksjoner blir behandlet i en seinere leksjon, så de kan du bare hoppe over i første omgang.

Video ★ Skjerm ★ Utskrift

 

Oppgaver

I denne første leksjonen skal vi bruke databaser som er ferdig definert og fylt med data.

Spørringene vi skal lage vil kun hente data fra én enkelt tabell.

Forberedelse: Kjøre SQL-skript i phpMyAdmin

Du kan løse oppgavene til denne første leksjonen rett i nettleseren:

Det er også mulig å åpne SQL-skript i nettleseren og bare klippe-og-lime herfra og inn i phpMyAdmin, uten å gå veien om Sublime, men da kan man risikere at norske spesialtegn (æ, ø og å) ikke blir vist skikkelig. SQL-skriptet er lagret med tegnsett Unicode. Hvis norske tegn ikke blir vist skikkelig, så kan du prøve å endre tegnsett til Unicode. Prøv å søke etter "tegnsett" eller "encoding" og navn på nettleseren.

LagAnsatt.sql ★ itfag.usn.no/phpmyadmin/

 

Oppgave A: Ansatt

Skriv SQL-spørringer for å hente ut følgende opplysninger:

  1. Etternavn og årslønn for ansatte som tjener mer enn 700.000 kroner i året. Tips: Resultatet skal altså ha 2 kolonner.
  2. Etternavn, stilling og årslønn for alle som ikke er sekretærer og tjener mindre enn 500.000 kroner i året.
  3. Alle stillingsbetegnelser som er i bruk, og slik at ingen stillingsbetegnelser kommer flere ganger.
  4. Listen av ansatte sortert først på stilling, og deretter på etternavn.
  5. Ansattnummer og navn for alle ansatte født i 1982. Fornavn og etternavn skal stå i én kolonne adskilt av ett blankt tegn. Utskriften skal dessuten inneholde årstall for ansettelse.Tips: Bruk funksjonen CONCAT for å sette sammen tekster. Prøv først å skrive SELECT CONCAT('a','b','c') i SQL-vinduet. Svaret blir 'abc'. Bruk funksjonen YEAR for å trekke ut årstallet fra en dato. Se SQL-dokumentasjonen til MySQL for eksempler.
  6. Etternavn og månedslønn for ansatte i markedsavdelingen. Tips: Bruk funksjonen ROUND for å avrunde månedslønn til to desimaler, f.eks. vil ROUND(123.456, 1) gi 123.5.
  7. Personer ansatt før 2010 sortert på lønn, de som tjener mest først. Tips: Skriv konkrete datoer slik: '2018-12-24' (julaften 2018). Du kan alternativt bruke funksjonen YEAR.
  8. All informasjon om ansatte som har "sekretær" i tittelen. Tips: Bruk "jokernotasjon"!
  9. Ansattnr og stilling til alle ansatte som er eldre enn 40 år og tjener mindre enn 450.000 kroner i året. Tips: Funksjonen DATE_ADD legger et tidsintervall til en dato. F.eks. vil DATE_ADD('2018-12-24', INTERVAL 3 DAY) returnere datoen '2018-12-27'. Intervallet kan angis i ulike måleenheter, f.eks. WEEK, MONTH eller YEAR. CURDATE gir dagens dato. Du må bruke den slik: CURDATE() – altså med tomme parenteser!

MySQL-dokumentasjonen

Oppgave B: Film

Last ned og utfør SQL-skriptet LagFilm.sql, som forklart over.

Prøv på oppgave 1a-1e, 1i og 1m fra kapittel 2 i læreboken.

Datasett Film

Oppgave C: Hytte (uten løsning)

Tar med enda noen ekstraoppgaver – disse vil det ikke bli lagt ut løsning til.

Last ned og kjør SQL-skriptet for eksempel Hytte, og skriv SQL-spørringer for å hente ut følgende opplysninger:

  1. Hytter som har både strøm og dusj.
  2. Hytter med "idyll" i beskrivelsen.
  3. Alle hyttene sortert synkende på pris og deretter på avstand fra alpinanlegg.
  4. Både hytter med 4 senger og hytter med 8 senger.
  5. Beskrivelsen av hyttene, der det første ordet er skrevet med store bokstaver. I første omgang kan du forutsette at beskrivelsen består av minst to ord skilt med mellomrom. Tips: Se om du finner nyttige funksjoner i MySQL-dokumentasjonen.

Datasett Hytte ★ MySQL-dokumentasjonen

 

Før du går videre

Les oppsummering til kapittel 2 og sjekk at du har forstått følgende begreper:

Prøv gjerne relevante quiz-spørsmål:

Test deg selv quiz