En database er enkelt forklart en lagringsløsning for data. Vi forholder oss til tusenvis av databaser hver dag. I banken er kundeopplysninger om deg lagret i en database. Hos mobiloperatøren din er kundeopplysningene lagret i en database. Hvis du er på Facebook, så er alle opplysninger om deg lagret i en database. På Finn er alle annonsene lagret i en database. Google har en database over de fleste nettstedene på internett, og når du søker så ser den gjennom databasen sin og forsøker å gi deg de mest relevante resultatene. En database er med andre ord en måte å lagre og organisere data, slik at den blir lettere tilgjengelig.
Også i bibliotekene kommer vi bort i databaser. All informasjon knyttet til samlingene våre og brukerne våre for eksempel, ligger lagret i databaser.
Facebook, Finn, Google og de fleste andre databaser har gjort det enkelt å søke etter informasjon som ligger i deres baser. Denne tingen ser på hvordan søke i databaser uten et forenklet søkegrensesnitt, men med et spørrespråk kalt SQL.
Rader og Kolonner
En enkel måte å se for seg en databasetabell på er som et regneark. Alle regneark er bygget opp av rader og kolonner. Hver kolonne har et unikt navn som identifiserer kolonnen i tabellen den befinner seg i. En tabell som holder brukerinformasjon til en nettside kan, for eksempel, inneholde følgende kolonner:
Brukernavn, Fornavn, Mellomnavn, Etternavn, Gateadresse, Postnummer, Passord osv…
All informasjon i en tabell er lagret i rader. I eksempelet overfor vil hver bruker lagres på en egen rad, slik at all informasjon om bruker med brukernavn «abc» befinner seg på samme rad i tabellen:
+-------------+---------+------------+-----------+---------------+------------+----------+ | Brukernavn | Fornavn | Mellomnavn | Etternavn | Gateadresse | Postnummer | Passord | +-------------+---------+------------+-----------+---------------+------------+----------+ | joachim | Joachim | Haageen | Bøe | Storgata 155G | 1203 | pass | | arnebn | Arne | | Nilsen | Storgata 155H | 1203 | abcdefgh | | knutkarlsen | Knut | | Karlsen | Maregata 1 | 1245 | gtrde | +-------------+---------+------------+-----------+---------------+------------+----------+
SQL står for Structured Query Language, som grovt oversatt betyr Strukturert Spørringespråk. Med dette menes det at man kan spørre etter data som ligger i databasen ved å bruke et eget spørrespråk. Et eksempel på dette er:
SELECT navn, telefonnummer FROM kundeliste
Denne spørringen kunne for eksempel hentet ut navn og telefonnummer til alle kundene som var lagret i databasens kundeliste. For de fleste er det unødvendig å lære seg dette hvis man skal lage hjemmeside, siden et publiseringsverktøy er laget slik at det stiller disse spørringene for oss. Så når man søker etter produkter i nettbutikker, så kan det godt være at det går SQL-spørringer til en database, når man bruker nettbutikkens søkefelt.
SQL kan gjøre mer enn å søke i en database:
W3schools har laget en interaktiv opplæring på SQL som tar for seg de ulike elementene i SQL. Se litt på dette kurset og bli bedre kjent med hvordan SQL-spørringer formes.
W3schools har også laget demobaser hvor man kan teste ut de forskjellige funksjonene i SQL. Her ligger en kundetabell, oversikt over produkter og leverandører, ordretabell med flere. Prøv følgende søk for å se hvordan SQL-spørringene fungerer (NB! Dere må legge inn anførselstegnene manuelt på nytt):
SELECT ContactName FROM Customers; (Henter ut kontaktnavn fra tabellen 'Customers')
SELECT * FROM Customers WHERE Country='Sweden' (Henter ut bare de svenske kundene fra tabellen 'Customers'. Ligger det også norske kunder i denne demobasen?)
SELECT * FROM [Suppliers] WHERE Country='Norway'; (Henter ut norske leverandører fra basen 'Suppliers').
SELECT Customers.CustomerName FROM Products, OrderDetails, Orders, Customers WHERE Products.ProductName='Gudbrandsdalsost' AND OrderDetails.ProductID=Products.ProductID AND OrderDetails.OrderID=Orders.OrderID AND Orders.CustomerID=Customers.CustomerID;