Spring til indhold

Structured Query Language

Fra Wikipedia, den frie encyklopædi
Version fra 8. jun. 2005, 18:41 af Rune (diskussion | bidrag) Rune (diskussion | bidrag) (SQL med eksempler)
(forskel) ← Ældre version | Nuværende version (forskel) | Nyere version → (forskel)

Structured Query Language eller SQL er det mest udbredte programmeringssprog til relationelle databaser. Sproget dækker måde definition af databaser og manipulation af data. SQL er et deklarativt programmeringssprog, hvilket vil sige, at man kun beskriver, hvad der skal ske, men ikke hvordan det sker.

I SQL skelnes der ikke mellem store og små bogstaver bortset fra dataværdier. Kommentarer indledes med '--' og varer linjen ud. SQL-kommandoer kan afsluttes med ";", hvis der kommer flere efter hinanden.

Definition af databaser

I denne del af SQL bruges generelt to typer kommandoer. CREATE opretter noget og DROP fjerner det igen. Eksempel:

-- Opret en database med et par tabeller
--
-- Databasen
CREATE DATABASE demo;
-- Adresseoplysninger
CREATE TABLE adresser (
  adresse_id INTEGER PRIMARY KEY,
  gade       VARCHAR(40) NOT NULL,
  husnr      INTEGER NOT NULL,
  sted       VARCHAR(20),          -- Etage, landsby mv.
  postnr     INTEGER NOT NULL REFERENCES postnumre (postnr)
);

I eksemplet er adresse_id nøglen, der skal være unik i tabellen. Gade er et tekstfelt, der er op til 40 tegn langt. Feltet skal udfyldes. Husnr er et heltal, der skal udfyldes. Det er valgfrit om feltet sted udfyldes. Feltet postnr skal være udfyldt, og der skal være et postnr i tabellen postnumre med samme værdi. Hvis disse krav ikke er opfyldt, kan data ikke indsættes i tabellen.

Datamanipulation

I en tabel i en database kan data oprettes, ændres, læses og slettes.

Læsning af data

Læsning foregår med kommandoen SELECT. I kommandoen beskrives, hvilke kolonner, der skal læses, hvilke tabeller, der skal læses fra og hvilke betingelser, der skal være opfyldt for at en række bliver læst. Eksempel:

SELECT gade, husnr, sted
FROM adresser
WHERE postnr = 7100;

Gade, husnummer og sted vises for adresser med 7100 som postnummer. Rækkefølgen er ikke defineret og dubletter kan forekomme.

Indsættelse af data

Data indsættes i en tabel med kommandoen INSERT. Eksempel:

INSERT INTO adresser VALUES (14, 'Prinsessegade',57,NULL,7000);

Værdierne anføres i samme rækkefølge, som de er defineret i tabellen. Alternativt kan man også anføre feltnavnene.

Opdatering af data

Ved opdatering anføres en tabel, en liste af ændrede værdier og et udvælgelseskriterie. Eksempel:

UPDATE adresser
SET sted = 'St. tv.'
WHERE adresse_id = 14;

Sletning af data

Sletning af data klares med kommandoen DELETE, der som input har et tabelnavn og et kriterie for hvilke rækker, der skal slettes. Eksempel:

DELETE FROM adresser
WHERE adresse_id = 14;

Da adresse_id er unik i tabellen slettes kun en række. "DELETE FROM adreser;" sletter alle rækker uden advarsel.

Spire
Denne artikel er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.