Om informatie uit een tabel op te vragen, gebruiken we het SELECT statement. De basis van een SELECT statement ziet er zo uit:
SELECT * FROM tabel
Hieronder de tabel waarop we onze voorbeelden gaan toepassen.
Indien we alle leerlingen uit onze tabel willen halen, gebruiken we volgende query:
SELECT * FROM tblLeerlingen
We selecteren alle (*) leerlingen uit de tabel tblLeerlingen.
We kunnen ook een selectie van kolommen opvragen door het sterretje te vervangen door de naam of namen van de velden, gescheiden door een komma.
Wanneer we alleen de naam, voornaam en de klas willen opvragen, gebruiken we dus onderstaande query:
SELECT naam, voornaam, klas FROM tblLeerlingen
Als we onze lijst willen sorteren, kunnen we achter de naam van de tabel nog een ORDER BY veld of velden toevoegen:
SELECT naam, voornaam, klas FROM tblLeerlingen ORDER BY naam, voornaam
Bij bovenstaande query sorteren we eerst op het veld naam en nadien op het veld voornaam.
Uiteraard kunnen we ook gaan zoeken in onze tabel en enkel de records weergeven die voldoen aan bepaalde criteria. Daarvoor gebruiken we de WHERE clausule. We kunnen bijvoorbeeld de leerling met id = 4 gaan opzoeken. Dit doen we als volgt:
select naam, voornaam, klas from tblLeerlingen where id = 4
Hierbij krijgen we de naam, de voornaam en de klas te zien van de leerling met id 4, uit onze tabel tblLeerlingen: De Grauwe Piet 2C
Merk op! Aangezien deze query maar één record oplevert, heeft een ORDER BY geen zin.
Je kan natuurlijk ook andere velden gebruiken om uw criteria op te stellen. Bijvoorbeeld het veld naam kan ook gebruikt worden:
SELECT naam, voornaam, klas FROM tblLeerlingen WHERE naam=‘Janssens’ ORDER BY naam, voornaam
Merk op! Hier is een verschil ten opzicht van PHP: bij een vergelijking in PHP gebruik je ==, in SQL =
We kunnen natuurlijk ook meerdere criteria gaan toevoegen door gebruik te maken van AND en OR. Hier onder willen we de naam, voornaam en klas van de leerlingen die de naam Janssens hebben OF de naam Peeters. Het resultaat zal gesorteerd worden op naam en nadien op voornaam.
SELECT naam, voornaam, klas FROM tblLeerlingen WHERE naam=‘Janssens’ OR naam=‘Peeters’ ORDER BY naam, voornaam
Hier onder willen we de naam, voornaam en klas van de leerlingen die de naam Janssens hebben EN de voornaam Jef. Het resultaat zal gesorteerd worden op naam en nadien op voornaam.
SELECT naam, voornaam, klas FROM tblLeerlingen WHERE naam=‘Janssens’ AND voornaam=‘Jef’ ORDER BY naam, voornaam
En je kan ook, door het gebruik van ronde haakjes, gaan combineren. In onderstaande query gaan we bijvoorbeeld de leerlingen selecteren die een naam Janssens hebben, of de naam De Preter en de voornaam Anja hebben.
SELECT naam, voornaam, klas FROM tblLeerlingen WHERE (naam=‘Janssens’) OR (naam=‘De Preter’ AND voornaam=‘Anja’) ORDER BY naam, voornaam
Een nog krachtigere zoekexpressie is LIKE, hiermee kan je zoeken in delen van een tekst.
Als we bijvoorbeeld alle leerlingen uit het eerste jaar willen ophalen, kunnen we volgende query gebruiken:
SELECT naam, voornaam, klas FROM tblLeerlingen WHERE klas LIKE '1%' ORDER BY naam, voornaam
Merk op! Het percentage staat hier voor geen, één of meerdere karakters.
Als we alle leerlingen willen zoeken die in hun voornaam an hebben staan, wordt dat:
SELECT naam, voornaam, klas FROM tblLeerlingen WHERE klas LIKE'%an%' ORDER BY naam, voornaam
Merk op! Naast = en LIKE kan je ook operatoren als < en > gebruiken.
Een heel handige parameter in een select is LIMIT. Met LIMIT kan je aangeven hoeveel records je wil tonen. Als je bijvoorbeeld de eerst twee records wil tonen, krijg je deze query:
SELECT * FROM tblLeerlingen ORDER BY naam, voornaam LIMIT 2
De records worden dus eerst gesorteerd op naam en voornaam, vervolgens worden enkel de eerste twee records getoond.
Als je record 3 tot en met 5 wil tonen (dus de eerste twee en de laatste weglaten), wordt dat:
SELECT * FROM tblLeerlingen ORDER BY naam, voornaam LIMIT 2,3
De 2 achter limit wil zeggen: begin bij rij 2. Belangrijk om weten is dat het eerste record op rij 0 staat. Record 1 (rij 0) en record 2 (rij 1) worden dus niet getoond. De 3 achter limit wil zeggen: toon de 3 daarop volgende records.
Om het aantal records te tellen, kan je gebruik maken van de SQL functie count(). Indien je bijvoorbeeld wil weten hoeveel leerlingen er in de tabel tblLeerlingen zitten, kan je de cout() functie gebruiken:
SELECT count(*) FROM tblLeerlingen
Je krijgt nu één record terug dat weergeeft hoeveel records er in die tabel zitten. Ook in deze query kan je weer criteria gaan toepassen, zodat je bijvoorbeeld gaat tellen hoeveel leerlingen er met de naam Janssens in de tabel voorkomen:
SELECT count(*) FROM tblLeerlingen WHERE naam = 'Janssens'