Kies een thema:

Cursus MySQL

Beginner


Gevorderde


Appendix


Informatie


Referenties


Links


4 MySQL gebruik

4.1 Selecteren


» Inhoudstafel
4.1.1 Stap voor stap opbouw

4.1.1 Stap voor stap opbouw

Het selecteren is één van de vier belangrijkste functies binnen MySQL. Want zeg nou zelf, wat heb je nou aan een database met informatie als je er niks mee kan doen? Maar hoe selecteer je nou gegevens uit de database. Dat is vrij simpel. Om bijvoorbeeld alle leden van SiteMasters geheel uit de database te halen zou je de volgende query kunnen uitvoeren: 

SELECT * FROM members 

Dit is op zich niet zo heel moeilijk zoals gezegd. Maar hoe bouw je nou een selecteren commando op? Je begint met het aangeven van de SELECT. Dit is namelijk het commando om een selectie uit de database te halen. We hebben nu dus: 

SELECT 

Vervolgens kunnen we, om het niet te moeilijk te maken, een tweetal keuzes maken. Of we selecteren alles uit de desbetreffende tabel of we maken een selectie van de velden die we willen opvragen. Om alles uit een tabel op te vragen maken we gebruik van het * teken. Om een selectie uit de tabel te halen kunnen we gebruik maken van de veldnamen uit de tabel. Dus de volgende aanvulling kunnen beide voorkomen: 

SELECT * 

SELECT naam, adres, date, punten 

Een goed oplettende bezoeker van deze cursus zal snel opmerken dat de tweede aanvulling niet kan. Niet kan? Als je goed kijkt naar de tweede query is er niks op te merken. Maar de gebruikte veldnamen zal ervoor zorgen dat de query niet uitgevoerd zal worden. Binnen MySQL zijn er een heel aantal woorden die je niet zomaar kan gebruiken. Dit zijn de zogenaamde gereserveerde woorden. De hele lijst kan je hier bekijken. Het woord wat in bovenstaand voorbeeld gereserveerd is, is het woord date. Maar je vraagt je waarschijnlijk af hoe je dit kan oplossen. Je kan het woord gewoon gebruiken in je query. Deze moet je dan wel voorzien van de zogenaamde backquotes. ( ` ). Je kan dit een beetje zien als escapen binnen bijvoorbeeld PHP. Door de backquotes zal de server zien dat het niet de functie date is maar het veld date. Je kan dus het tweede voorbeeld als volgt werkend krijgen: 

SELECT naam, adres, `date`, punten

Nadat we kenbaar hebben gemaakt wat we graag uit de tabel willen halen moeten we vervolgens aangeven vanuit welke tabel we dit graag willen halen. Dit doen we door middel van FROM gevolgd door de tabelnaam. We kunnen dus onze query als volgt uitbreiden zodat we aangeven uit welke tabel we het willen halen. 

SELECT naam, adres, `date`, punten FROM members 

Dit is een vrij simpele voorstelling van het selecteren van data uit een database. Maar we kunnen ook voorwaarden stellen aan een bepaalde selectie. Dus bijvoorbeeld:

,,Geef mij alle leden welke meer dan 1000 punten hebben’’

Meer over voorwaardes stellen vind je in voorwaarden en condities.

Ook kan je de gegevens gegroepeerd en / of in een bepaalde volgorde uit de tabel halen. Dit kan handig zijn om bijvoorbeeld alle leden op alfabetische volgorde uit de tabel te halen. Om via een bepaalde volgorde je selectie terug te krijgen kunnen we bovenstaand voorbeeld uitbreiden. Volgorde in de selectie kunnen we realiseren door het commando ORDER BY toe te voegen. Het ORDER BY commando wil wel graag weten op welk veld er volgorde moet komen. We voegen hiervoor het veldnaam toe achter ORDER BY. Ook kan je aangegeven of je van hoog naar laag of laag naar hoog wil ordenen. Dit is mogelijk door achter het veldnaam ASC , voor laag naar hoog, of DESC , van hoog naar laag, toe te voegen. Willen we dus alle leden op alfabetische volgorde hebben kunnen we ons voorbeeld als volgt uitbreiden: 

SELECT naam, adres, `date`, punten FROM members ORDER BY naam ASC. 

Soms komt het echter voor dat er meerdere leden dezelfde naam hebben. Je kan dan een soort volgorde aangeven aan de ORDER BY. Dit kan door middel van de veldnamen komma gescheiden aan te geven waarbij het eerste veld geldt voor de eerste sortering, het tweede veld voor de tweede sortering enz enz. We willen dus na de naam, sorteren op het aantal punten. Ons voorbeeld kunnen we dan als volgt aanpassen: 

SELECT naam, adres, `date`, punten FROM members ORDER BY naam, punten ASC

Dit is in grote lijnen het selecteren. Je kan er veel dieper induiken als je dat graag wilt. Kijk dan maar eens bij de volgende secties:

Uit meerdere tabellen selecteren

Functies gebruiken in je query

« MySQL gebruik    Toevoegen »