Introduktion til SQL

 

Hvad er SQL?

SQL står for Structured Query Language. Programmeringssproget benyttes til at skabe, opbevare og manipulere data i relationelle databaser og er verdens mest benyttede programmeringssprog til dette formål. SQL giver dig muligheden for at skabe, manipulere og udforske data i en database for derved at kunne gøre brug af det. Når du lærer SQL vil du også blive introduceret til generelle koncepter som dækker næsten alle slags databasesystemer.

SQL blev udviklet i 1974 i IBM af Donald D. Chamberlin og Raymond F. Boyce til internt arbejde, men er sidenhen blevet opdateret og udgivet kommercielt til alle i henholdsvis 1979, 1981 og 1983, da man opdagede hvor brugbart sproget var til at kommunikere med relationelle databaser.  I 1986 blev sproget officielt anerkendt og standardiseret af ANSI (American National Standards Institute) og ISO (International Organization for Standards). Til den dag i dag bliver SQL løbende opdateret men det grundlæggende fundament for sproget er stort set det samme som dengang det blev opfundet.

 

Hvad er en database?

Utallige virksomheder benytter SQL til at samle alt deres data i en database. En database er defineret som en samling af logisk relateret data som er organiseret på en måde, så det let kan blive opbevaret, opdateret og hentet frem igen til brug. Der er hovedsageligt to årsager til at opbevare data i en database:

  • For at holde regnskab
  • For at tage præcise beslutninger baseret på den tilgængelige data

Organiseringen af data i en database sker ved hjælp af et databasesystem (Database Management System, eller DBMS). Disse databasesystemer kan baseres på forskellige databasemodeller. Den mest benyttede og udbredte form for databasemodel er den relationelle database og det er den model som SQL-sproget er lavet til. Derfor er det meget vigtigt at vide helt præcist hvad en relationel database er.

 

Hvad er en relationel database?

En relationel database er organiseret i én eller flere tabeller med rækker og kolonner. En række er enhver horisontal enhed som fremstår i tabellen. En kolonne er enhver vertikal enhed i tabellen som indeholder alt information associeret med dets specifikt felt i tabellen. En tabel bliver ofte refereret til som en relation. Disse tabeller er forbundet med hinanden og deres forbindelse udgør strukturen for en relationel database.

Et system for en relationel database kaldes en Relational Data Stream Management System (RDSMS). SQL-sproget tager udelukkende udgangspunkt i den relationelle databasemodel, som også er den mest benyttede og velkendte model til opbevaring af data. Faktisk er denne model så populær, at andre typer af databasemodeller bliver kaldt ikke-relationelle databaser, eller NoSQL-databaser. Dog er ikke-relationelle databaser gradvist blevet mere populære inden for de seneste par år, men den slags databasemodeller er knap så strukturerede. Du kan læse mere om ikke-relationelle databaser, ved at klikke her.

Strukturen for en relationel database kan vises som et database-skema. Nedenstående er et eksempel på, hvordan sådan et skema kan se ud:

Kaffemærker (ID, Navn, Producent)
Caféer (ID, Navn, Adresse)
Kunder (ID, Navn, Adresse, Telefonnummer)
Salg (ID, Café, Kaffe, Pris)

Dette skema er opdelt i fire tabeller: kaffemærker, caféer, kunder og salg.

 

Strukturen for SQL

For at få illustreret, hvordan strukturen for SQL ser ud kan du tage et kig på nedenstående tabel, som hedder Kaffemærker og som viser oplysninger om navn og producent på fire forskellige kaffemærker:

 

Kolonnerne i ovenstående tabel er ID, Navn og Producent. De fire rækker i tabellen viser oplysninger om navn og producent på fire forskellige kaffemærker. Kolonnen ID fungerer som tabellens primære nøgle (primary key), da værdien er helt unik for hver række, så den derved altid kan angive den bestemte række i tabellen.

For at give dig et indtryk af, hvordan SQL-sproget ser ud kan du tage et kig på nedenstående kode som indlæser en tabel udelukkende med navne på alle kaffemærkerne fra ovenstående tabel:

SELECT Navn FROM Kaffemærker;

Tabellen som ovenstående kode vil hente frem ser sådan her ud:

 

I SQL har linjeafstand og mellemrum ikke nogen betydning for kodens funktionalitet. Det benyttes blot til at skabe struktur og gøre det nemmere at læse for os mennesker. Derudover er det også ligegyldigt for kodens funktionalitet om man benytter små eller store bogstaver til at skrive sine erklæringer.

Det er heller ikke absolut nødvendigt at slutte af med semikolon når kodestykket er færdigt, men det kan stadig skabe rod i programmet, hvis ikke man indsætter et semikolon. Derfor anbefales det at man benytter semikolon hver gang at et kodestykke er færdigt, ligesom i det ovenstående kode-eksempel.

 

Opbygningen af SQL

SQL er et deklarativt sprog – Det vil sige at man kun beskriver hvad der skal ske, ikke hvordan det sker. Af den grund er det også nemmere at lære, for folk der ikke har prøvet at programmere før.

Erklæringer i SQL kan klassificeres på flere forskellige måder, men hovedsageligt er sproget bygget op omkring disse tre undersprog:

  • DDL – Data Definition Language: Benyttes til at skabe databaser og opbygge strukturen.
  • DML – Data Manipulation Language: Benyttes til at få adgang til og udtrække specifik data fra databasen.
  • DCL – Data Control Language: Benyttes til at kontrollere hvem der har adgang til databasen.

Derudover er der tre yderligere undersprog, som er knap så vigtige:

  • DRL/DQL – Data Retrievel Language/Data Query Language: Benyttes til at udtrække information fra databasen.
  • TCL – Transaction Control Language: Benyttes til at genoprette data.
  • SCL – Session Control Language: Benyttes til at håndtere den individuelle brugersession.

Du skal være opmærksom på, at SQL ikke er et databasesystem, men kun et sprog til at manipulere med data i et databasesystem, som f.eks. MySQL eller PostgreSQL.

 

Indholdet på denne side

Denne side om SQL indeholder alle sprogets vigtigste erklæringer, som man kan få en oversigt over på den højre side-menu i toppen. Siderne er strukturerede som et opslagsværk, så de er meget korte og præcise, så du derved let kan kopiere dem over til dine egne noter, hvis du skulle få behov for det. Erklæringerne i SQL er delt op i fire kategorier:

  1. Datadefinition: Opret, opdater, slet og tilføj indhold i tabeller
  2. Data manipulation: Manipuler tabellen til at vise bestemt data ved hjælp af betingelser, sorteringer, mønstre mm.
  3. Funktioner i SQL: Foretag kalkulationer på data for at finde frem til bl.a. sum, gennemsnit og antal ved hjælp af funktioner
  4. Forbindelse af tabeller: benyt forskellige metoder til at forbinde tabeller sammen

 

Gå videre til Datadefinition i SQL her →