Met IN filter je op een lijst van mogelijke waarden. Dit is korter en leesbaarder dan meerdere OR-voorwaarden.
-- In plaats van:
SELECT * FROM animals WHERE color = 'red' OR color = 'blue' OR color = 'green'
-- Kun je schrijven:
SELECT * FROM animals WHERE color IN ('red', 'blue', 'green')
Je kunt IN ook combineren met een subquery: een query binnen een query.
SELECT * FROM animals
WHERE color IN (
SELECT color FROM animals WHERE owner = 'Joep'
)
De database voert eerst de binnenste query uit (welke kleuren hebben Joeps dieren?) en gebruikt dat resultaat voor de buitenste query.
De boer wil alle dieren zien die geel, paars of goth-kleurig zijn. Schrijf dit zo kort mogelijk. Tabel: animals, kolom: color.
Frits vraagt: "Welke dieren zijn van hetzelfde type als mijn dieren?" Schrijf een query met een subquery die dit in een keer beantwoordt. Tabel: animals, kolommen: animaltype, owner.
Met BETWEEN filter je op een bereik. De grenzen zijn inclusief.
SELECT * FROM animals WHERE age BETWEEN 3 AND 7
Dit haalt alle dieren op van 3 t/m 7 jaar oud.
De dierenarts wil alle dieren tussen de 5 en 12 jaar oud onderzoeken (inclusief 5 en 12). Tabel: animals.
Een klant zoekt producten in de prijsklasse €10 tot €50. Tabel: products, kolom: prijs.
Met LIKE zoek je naar patronen in tekst. Je gebruikt wildcards:
% -- nul, een of meer karakters_ -- precies een karakter-- Alle namen die beginnen met 'A'
SELECT * FROM animals WHERE name LIKE 'A%'
-- Alle namen die eindigen op 'a'
SELECT * FROM animals WHERE name LIKE '%a'
-- Alle namen waar ergens 'ar' in zit
SELECT * FROM animals WHERE name LIKE '%ar%'
De boer is de naam van een dier vergeten, maar weet dat het begint met een B. Welke dieren komen in aanmerking? Tabel: animals.
Een student zoekt alle docenten die een Gmail-adres hebben (eindigend op @gmail.com). Tabel: docenten, kolom: email.
De boer wil alle dieren vinden die ergens 'ie' in de naam hebben. Tabel: animals.
Met AS geef je een kolom een tijdelijke andere naam in het resultaat. Dit verandert niets aan de database zelf.
SELECT name AS dierennaam FROM animals
Dit is vooral handig wanneer je tabellen koppelt (JOIN) en kolommen met dezelfde naam hebt.
Je baas wil een rapport in het Nederlands. Toon de naam als "dierennaam" en de leeftijd als "leeftijd" uit de tabel animals.
Met DISTINCT verwijder je dubbele waarden uit het resultaat.
SELECT DISTINCT color FROM animals
Dit geeft een lijst van alle unieke kleuren die voorkomen in de tabel, zonder duplicaten.
De boer wil weten welke soorten dieren hij heeft, zonder dubbelen. Tabel: animals, kolom: animaltype.
Welke unieke combinaties van kleur en patroon bestaan er op de boerderij? Tabel: animals, kolommen: color, pattern.