Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Als er aan meerdere voorwaarden moet worden voldaan kun je gebruik maken van AND en OR.
Als je bijvoorbeeld alle facturen wilt met een totaal bedrag tussen de 6 en 10 euro. Krijg je de volgende query:
Nog een voorbeeld:
Combineren van AND en OR kan natuurlijk ook:
Stel nu deze:
Wat betekent dit? Krijg ik dan:
Alle klanten die mark en Frank heten die in America wonen
Krijg ik alle klanten die mark heten en alle klanten die frank en in america wonen.
Dat 2de dus.
Als we dat niet willen moeten we even haakjes plaatsen. Dan krijg je dus dit:
2.5 Oefening
Geef alle klanten die uit amerika komen en wonen in de stad new york of mounten view
Met het commando IN kun je hetzelfde bereiken als met OR maar de query wordt dan korter.
Als je de klanten wilt selecteren die in France, Canada of Netherlands wonen, dan kun je als voorwaarde gebruiken:
Maar het kan ook met de volgende voorwaarde:
De volledige query wordt dan als volgt:
NOT
Met NOT kun je de klanten krijgen die niet aan een bepaalde voorwaarde voldoen.
Stel dat je alle klanten wilt hebben die niet in Canada wonen.
Dat kan m.b.v. de volgende query:
Je kunt hetzelfde lijstje krijgen m.b.v. deze query:
Met BETWEEN moet de kolomwaarde tussen twee waarden liggen.
Voorbeeld:
Als je bepaalde rijen wilt selecteren die voldoen aan één of meerdere voorwaarden, dan gebruik je WHERE
.
In het volgende voorbeeld maken we een lijstje van de Klanten die in "Spanje" wonen.
De query wordt:
De basis syntax voor de query is:
In de voorwaarde zit altijd een operator, je kunt de volgende operatoren in SQL gebruiken:
Operator
Betekenis
=
is gelijk aan
<
is kleiner dan
>
is groter dan
<=
is kleiner of gelijk aan
>=
is groter of gelijk aan
<>
is niet gelijk aan
between
ligt tussen
in
is een van de volgende waarden
2.4 Oefening
Welke klanten hebben de voornaam "Mark"? (geef de voornaam en de achternaam)
LIKE is een krachtige operator. Met LIKE kun je selecteren op gedeelten van de tekst.
Stel dat je een lijstje wilt van de klanten waarvan de naam met een D begint. Dat kan met de volgende query:
Je ziet dat er na LIKE staat: 'D%'
Het %
teken is een zogenaamde wildcard en staat voor een willekeurig aantal tekens.
Het betekent dus dat de naam met een D moet beginnen, en wat er achter staat doet er niet toe, dat mag alles zijn.
Als je alle namen en hun woonplaatsen wilt hebben van mensen die een dubbele l (ll) in hun naam hebben, dan gebruik je de volgende query:
In combinatie met LIKE
kun je nog een andere wildcard gebruiken, namelijk het teken _ , de underscore. Dat teken staat voor één willekeurig teken (en een procentteken (%) staat voor meerdere willekeurige tekens (dat kan ook één of nul zijn).
Stel dat we alle namen willen hebben van de klanten waarvan de naam uit vier letters bestaat. De query wordt dan:
We kunnen de beide wildcards ook combineren. Stel dat we de namen van de klanten willen hebben waarvan de voorlaatste letter een e is.
Die krijg je m.b.v. de volgende query:
2.6 Oefening
Geef de voornaam, achternaam van alle klanten waarvan de eerste letter van de voornaam met een a, e, i, o of u begint.
Als je wilt controleren m.b.v. SQL of een kolom is ingevuld dan gebruik je IS NULL
Je kunt bijvoorbeeld de volgende query uitproberen:
Het resultaat is een lijst van klanten waarvan geen telefoonnummer in de database is geregistreerd.
Je zou ook het omgekeerde kunnen bevragen: dus alle leerlingen die wel een telefoonnummer hebben. Dat kan zo:
2.7 Oefening
Je kunt het aantal rijen dat wordt afgedrukt beperken m.b.v. LIMIT.
Stel dat je de top 2 jongste werknemers uit de database wilt. Je zou dan de volgende query kunnen opstellen.
LIMIT 3 geeft aan dat de query moet stoppen na de derde rij.
Stel dat je de drie mensen wilt hebben, die wat hun geboortedatum betreft op de plaatsen 3, 4 en 5 staan. Dus de twee hoogsten niet, maar de drie die daarop volgen. Dat kan met de volgende query:
Je ziet dat er nu na LIMIT 2,3 staat; dat betekent dat er wordt begonnen met rij nummer 2 (dat is de derde rij want er wordt begonnen met tellen bij 0, de eerste rij heeft nummer 0 en de tweede rij heeft nummer 1), en er worden 3 rijen afgedrukt.