Cursussen/Courses Codesnippets     Top 
SQL select - Voorwaarden


Voorwaarden
Bij het selecteren ga je eventueel voorwaarden kunnen opgeven om specifieke records te laten ophalen. Deze voorwaarden zijn samengesteld uit veldnamen, operatoren en waarden.
Je kunt volgende operatoren gebruiken:
operatoromschrijving
=gelijk aan
!=niet gelijk aan
<kleiner dan
>groter dan
<=kleiner dan of gelijk aan
>=groter dan of gelijk aan
BETWEEN … AND …tussen begin- en eindwaarde
LIKEvolgens een letterpatroon
INin een opsomming voorkomend
In het voorbeeld hieronder worden de "wine_id" en "cost" (kostprijs) van de tabel "inventory" (inventaris) geselecteerd waarvan de "cost" kleiner is dan 5.1.
select wine_id, cost 
from inventory 
where cost < 5.1
Merk op dat decimale getallen met een decimale punt moeten ingegeven worden.
Je kunt een telefoonnummer opvragen van een wijngaard ("winery") door in de voorwaarde de naam te vergelijken met een opgegeven naam.
select winery_id, winery_name, region_id, phone 
from winery 
where winery_name = 'Binns Group'
Als je de naam niet exact weet kan je ook een vraag formuleren waarbij je bvb. alle wijngaarden opvraagt waarvan de beginletter van de naam groter is of gelijk aan de letter "W".
select winery_name, phone 
from winery 
where winery_name >= 'W'
Alle wijngaarden waarvan de naam met een W, X, Y of Z begint wordt opgehaald.
Met de operatoren "Between…and…" kan je een bereik opgeven waartussen de inhoud van een veld zich moet bevinden om geselecteerd te worden.
In dit voorbeeld worden de klanten opgehaald waarvan de familienaam begint met een D, E of F. De eindwaarde wordt niet mee opgenomen in het resultaat. De beginwaarde echter wel.
select surname, firstname 
from customer 
where surname between 'D' and 'G'
De lijst wordt automatisch gesorteerd op het veld uit de voorwaarde ("where" clausule).
Als je de operator "like" gebruikt kan je jokertekens ("wildcards") gebruiken. In SQL staat een "%"-teken voor het vervangen van een willekeurig aantal karakters. Het "_"-teken (underscore) staat voor het vervangen van 1 karakter op de aangeduide plaats.
In het eerste voorbeeld worden de namen van de wijnen geselecteerd die beginnen met "Wood". De namen worden verder aangevuld met om het even welke karakters.
select wine_name 
from wine 
where wine_name like 'Wood%'
In het tweede voorbeeld wordt gezocht naar het woord "err" op elke mogelijke positie in de wijnnaam. De naam moet dus "err" bevatten.
select wine_name 
from wine 
where wine_name like '%err%'
Met de "IN" operator wordt de inhoud van het veld vergeleken met waarden in een opsomming. De inhoud en de waarde moet exact hetzelfde zijn. Is dat het geval dan wordt de record opgenomen in het resultaat.
select wine_name 
from wine 
where wine_name in ('Chester', 'Sorrenti', 'Chemnis')
Bewerkingen
Tijdens het uitvoeren van een query kan je bewerkingen maken met de inhoud van de velden.
In het voorbeeld hieronder wordt een lijst opgevraagd van de wijnen met een kostprijs kleiner dan 5.1. In de berekende kolom wordt weergegeven hoeveel de kostprijs zou zijn als die met 5 % wordt verhoogd.
select wine_id, cost/100 * 105 
from inventory 
where cost < 5.1
Meerdere voorwaarden
In de "where" clausule van een query kan je meerdere voorwaarden opgeven.
Om die voorwaarden te combineren maak je gebruik van de logische operatoren AND, OR of NOT.
select wine_name, year 
from wine 
where type = 'Red' 
and year < 1971
In dit voorbeeld worden alle rode wijnen geselecteerd EN het jaartal van die wijnen is kleiner dan 1971. Enkel de records waarbij aan de beide voorwaarden werd voldaan worden opgenomen in het resultaat.
Bij het gebruik van de "or" operator geef je aan dat 1 van beide voorwaarden moet voldaan zijn om opgenomen te worden in het resultaat.
In het voorbeeld hieronder worden alle witte OF rode wijnen geselecteerd waarbij het jaartal van die wijnen kleiner is dan 1971. Je gebruikt haakjes om aan te geven welke voorwaarde met welke andere voorwaarde moet gecombineerd worden.
select wine_name, type, year 
from wine 
where (type = 'Red' or type = 'White') 
and year < 1971
Misschien vraag je jezelf af of er ook andere wijnen (dan rode of witte) zijn uit 1970.
Hiervoor kan je de query aanpassen zodat de rode of witte wijnen NIET worden opgenomen in het resultaat.
select wine_name, type, year 
from wine 
where not(type = 'Red' or type = 'White') 
and year < 1971


X

Paragrafen

Voorwaarden