Spring til indhold

Databaser og SQL — sådan gemmes og hentes strukturerede data

Tabeller, nøgler og de kommandoer, der spørger databasen

En relationel database gemmer data struktureret i tabeller, ligesom et regneark, men med regler for, hvordan tabellerne hænger sammen. Databasen sørger for, at data forbliver konsistente, selv når mange brugere læser og skriver samtidig, og at man kan finde og hente store mængder data hurtigt gennem indekser.

§Tabeller, rækker og kolonner

En tabel repræsenterer én slags data — fx kunder, ordrer eller brugere. Hver kolonne har et navn og en datatype (tekst, tal, dato), og hver række er én konkret post. En primærnøgle (primary key) er en kolonne eller kombination af kolonner, der entydigt identificerer hver række — typisk et løbenummer, der aldrig genbruges, selv når rækken slettes.

§Sammenhænge mellem tabeller

Data spredes bevidst ud over flere tabeller for at undgå at gemme den samme oplysning flere steder — det kaldes normalisering. En fremmednøgle (foreign key) i én tabel peger på primærnøglen i en anden, fx peger en ordrelinje på det kundenummer, ordren hører til. Normalisering gør det lettere at rette en oplysning ét sted og reducerer risikoen for, at data i to tabeller kommer til at modsige hinanden.

§SQL — sproget der spørger databasen

  • 01SELECT henter data fra en eller flere tabeller, evt. med betingelser (WHERE) og sortering
  • 02INSERT tilføjer en ny række i en tabel
  • 03UPDATE ændrer værdier i eksisterende rækker
  • 04DELETE fjerner rækker
  • 05JOIN kombinerer data fra flere tabeller ud fra deres nøgle-sammenhæng, fx kunder sammen med deres ordrer
KommandoHvad den gør
SELECT navn FROM kunder WHERE by = 'Odense'Henter navne på kunder i Odense
INSERT INTO kunder (navn, by) VALUES ('A', 'Vejle')Tilføjer en ny kunde
UPDATE kunder SET by = 'Odense' WHERE id = 12Retter byen på kunde nummer 12

En veldesignet database gør de rigtige spørgsmål lette at stille og de forkerte umulige at snyde sig til.

Faglig grundregel i systemudvikling