Hvad er SQL?
SQL står for Structured Query Language og er et relationelt databasesprog. At det er relationelt vil sige, at du kan lave relationer mellem dine tabeller i databasen. F.eks. kan du koble en kunde sammen med nogle varer i en e-handel.
Med SQL kan du altså få mulighed for at behandle data i dine databaser, som understøtter SQL. Det kan være MySQL, SQL Server, MS Access, Oracle, og mange andre af de helt store databasesystemer.
SQL findes i forskellige versioner, men at det er en standard vil sige, at de mest almindelige kommandoer som SELECT, UPDATE, DELETE, INSERT og WHERE går igen i alle versioner.
Hvad kan du med SQL?
Nogle af de muligheder, du har med SQL er:
- Hente data fra databasen
- Lave forespørgsler, f.eks. 'find alle kunder i Århus'
- Indsætte data
- Slette data
- Opdatere data
- Lave nye tabeller i databasen
- Lave en helt ny database
- Sætte beskyttelse på databasen
Hvornår skal du bruge SQL?
Du skal bruge SQL, hvis du skal anvende en database til dit website. F.eks. hvis du skal lave en sikker login, så kræver det, at dine brugeres oplysninger ligger i en database. Hvis du skal have varer eller lignende, skal oplysninger om disse, samt antal ligge i en database.
Større websteder er Content Management Systemer (CMS), hvor indhold og layout er adskilt. Disse benytter sig af databaser, hvor al indhold ligger i tabeller. Medarbejdere i forskellige afdelinger kan så opdatere indholdet på de sider de har rettigheder til, blot ved at tilgå databasen fra en browser. Den store fordel ved dette er, at medarbejderne ikke behøver noget kendskab til hverken webdesign, programmering eller databaser.
Hvordan kommer du i gang med SQL?
For at arbejde med databasestyrede websider skal du anvende følgende teknologier:
- HTML/CSS
- Et serverside-scripting sprog, f.eks. PHP
- Et databasesystem, som understøttes af SQL; f.eks. MySQL
- SQL
Det er en god ide at anvende MySQL, da dette er en open-source database, ligesom det rådes til at bruge PHP som serverside sprog. Første gang du arbejder med PHP og MySQL, vil du typisk installere en server MySQL din egen computer, og så teste siderne lokalt – det er hurtigere og andre kan ikke se dine sider. Dette kræver, at du downloader og installerer både PHP, Apache Server og MySQL.
For at slippe for at installere alle disse komponenter enkeltvis, kan du på følgende adresser downloade og installere både PHP, Apache Server og MySQL på én gang:
Du vil samtidig installere phpMyAdmin, som er grafisk administrationsværktøj, som gør det mere brugervenligt at oprette og opdatere dine databaser.
Hvad består en Database af?
En datadabase består af en eller flere tabeller. En tabel har et navn, f.eks. 'Kunder'. En tabel har desuden 'felter', f.eks. KundeID, Fornavn, osv. En kundes samlede oplysninger er en 'post'.
| KundeID | Efterenavn | Fornavn | Adresse | By |
|---|---|---|---|---|
| 1 | Jensen | Peter | Vestergade 5 | Århus |
| 2 | Hansen | Helle | Østergade 7 | Århus |
| 3 | Jensen | Kaj | Søndergade 9 | Vejle |
Denne tabel består altså af 3 poster med hver 5 felter. Felter kan have forskellige datatyper, f.eks. tekst, dato, tal, ja/nej, osv.
En tabel har også en primær nøgle, som skal være unik for tabellen. I ovenstående er alle kundeID unikke og derfor er KundeID primær nøgle, mens der godt kan være flere, der hedder Jensen. Primær nøgler bruges til at finde bestemte poster i en databaser og kombinere poster fra flere tabeller i en relationsdatabase. F.eks. kan du have en tabel 'ordrer', som kobler poster fra tabellerne 'kunder' og 'varer' ved at referere til deres primærnøgler. Det smarte ved dette er, at hvis en kunde får ny adresse, så skal det kun ændres i kundetabellen, mens ordren automatisk opdateres. Du undgår dermed redundans (dvs. samme data skal gemmes flere steder) og inkonsistens (at samme data flere steder ikke stemmer overens).
SQL Syntax
Du kan som sagt bruge phpMyAdmin til oprette og opdatere dine databaser og tabeller, men hvis du vil være en rigtig 'haj', skal du kunne SQL-syntax'en, så skal du lære selv at skrive SQL SQL deles typisk op i data manipulation, dvs. behandling af indholdet i tabellerne, og data definition, dvs. oprettelse og håndtering af databaser og tabeller. Bemærk: SQL er ikk case-sensitiv, men for overskuelighedens skyld skrives kommandoerne med stort.
SELECT bruges til at vælge nogle poster, og med WHERE kan du sætte kriterier på dit udtræk.
SELECT * FROM Kunder vil vælge alle poster i tabellen 'Kunder'.
SELECT Efternavn, Fornavn FROM Kunder
WHERE By='Århus' AND Efternavn='Jensen'
...giver resultatet: Jensen, Peter. Da der kun er én post, som opfylder kriterierne. Du kan også indsætte data i tabellen:
INSERT INTO Kunder VALUES (4,'Sørensen', 'Line', 'Nordgade 3', 'Roskilde')
Dermed indsættes en ekstra post. Det er ikke noget krav, at der er værdier for alle felter, medmindre det er sat som et krav ved tabellens oprettelse, at de ikke må indeholde en null-værdi. For at opdatere en post skrives f.eks.:
UPDATE Kunder SET Efternavn='Petersen'
WHERE Fornavn='Helle'
For at slette en post skrives f.eks.:
DELETE FROM Kunder
WHERE By='Århus' OR By'='Vejle'
Denne kommando vil slette alle kunder, som bor i Århus eller Vejle.
For at oprette en ny database 'eHandel' skrives:
CREATE DATABASE eHandel
For at oprette en tabel, som den vi har taget udgangspunkt i, skrives:
CREATE TABLE Kunder (
KundeID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Der laves en tabel med feltnavn og tilhørende datatyper, hvor int er et heltal mens varchar(255) er en tekststreng med op til 255 tegn.
