Operatoren

Logische operatoren

select <kolomnamen|*> 
from <tabel> 
where <conditie> 
order by <kolomnaam>

Een conditie is een voorwaarde waaraan een rij moet voldoen om getoond te worden.

  • Bijvoorbeeld: where naam = ‘Piet’
OperatorBetekenis
=Gelijk aan
>Groter dan
>Kleiner dan
>=Groter of gelijk aan
Kleiner of gelijk aan
!= en <>Niet gelijk aan

Voorbeelden van condities:

  • where geb_datum > ’01-jan-1999’

  • where voornaam = ‘Piet’

  • where student_nr > 1000

  • where student_nr = 1000

  • Logische operatoren maken het mogelijk om meerdere condities te combineren

    • Bijvoorbeeld: Toon alle studenten die in Nijmegen wonen en na 1999 zijn geboren.
where woonplaats = ‘Nijmegen’ 
	and geb_datum >01-jan-1999
  • Er zijn 3 logische operatoren:
OperatorBetekenis
andBeide expressies moeten waar zijn
orEen van beide expressies moet waar zijn
notDe expressie moet niet waar zijn

Lijsten

  • Met de IN operator kun je een conditie opgeven waarbij je wilt dat een waarde voorkomt in een groep van waardes
    • Bijvoorbeeld: toon alle studenten die in Nijmegen, Arnhem of Oss wonen
where woonplaats in ('Nijmegen', 'Arnhem', 'Oss')

Like operator

Net als op Linux en Windows is het mogelijk wildcards te gebruiken

Dit kan alleen in combinatie met de operator like

De wildcards _ en % hebben dezelfde betekenis in SQL als ? en * op Linux

  • _ = ?
  • % = *

Between operator

  • De Between operator gebruiken we om tussen twee variabelen te zoeken, dit gebruik je vooral bij de datum datastructuur.
  • Bijvoorbeeld: Welke studenten zijn geboren tussen 1 januari 2000 en 31 januari 2001?
select * 
from student 
where geb_datum between '2000-01-01' and '2001-01-31'

Is null operatoren

Om te toetsen of iets null is gebruik je niet = null maar is null

Met de where clausule toon je rijen waar de conditie (voorwaarde) klopt

  • Met ‘=’ vergelijk je 2 expressies (uitdrukkingen)
  • Met ‘IS NULL’ check je of een attribuut geen waarde heeft

Een expressie (uitdrukking) kun je opnemen in de select clausule

  • Bijvoorbeeld:
select student_nr/2,
	voornaam,
	'hello world'
from student

Kolommen (tekst) kun je aan elkaar plakken met de functie concat

  • Bijvoorbeeld:
select concat(voornaam,' 
',achternaam) 
from student 

Als er een null in een van de antwoorden zit, wordt dat antwoord als null teruggegeven

  • Bijvoorbeeld:
select concat(voornaam,tussenvoegsels,achternaam) 
from student 

Expressies hoeven niet altijd over de inhoud van kolommen te gaan

  • Bijvoorbeeld:
select 1+1 
from studenten 

In MySQL kun je de from clausule weglaten tenzij je kolommen/attributen gebruikt die refereren aan tabellen

  • Bijvoorbeeld:
select 1+1; 
select curdate(); 
select now(); 

Functies

Functies in een SQL zijn vergelijkbaar met functies in Python: je stopt waardes erin en er komt iets uit

  • Bijvoorbeeld: upper(‘bio-informatica’)
    • De functie upper zal alle tekst retourneren in uppercase(hoofdletters)
select upper(‘bio-informatica’);

Tekst functies

FunctieUitwerking
instrzoek naar het voorkomen van een substring
lengthlengte bepalen van een string
lowerzet alles om naar lowercase
upperzet alles om naar uppercase
ltrimhaal tekens (standaard spatie) weg links
rtrimhaal tekens (standaard spatie) weg rechts
substrhaal een substring uit een string
concatplakken van meerdere strings aan elkaar
likeeenvoudige tekstpatronen met wildcards % en _
sounds_likezoekopdrachten op uitspraak
regexpzoekopdrachten op basis van regular expressions

Voorbeeld tekst functie:

select upper (voornaam) 
, length (voornaam) 
, ltrim (voornaam) 
, substr (voornaam,2,5) 
from student

Numerieke functies

FunctieWerking
modde modulus functie
logberekening van het logaritme
lnnatuurlijk logaritme
roundafronden van een getal
ceilafronding naar boven
floorafronding naar beneden
sqrtwortel

Datum functies

FunctieWerking
curdateretourneert de actuele datum
curtimeretourneert de actuele tijd
nowretourneert datum en tijd
period_diffverschil in maanden tussen twee data
datediffdatum min andere datum (dagen)
daynamenaam van de weekdag
daydag van de maand
weekweeknummer

algemene functies

FunctieWerking
casezet een waarde om in een andere waarde
ifnullvervangt een null door een andere waarde
nullifvervang een waarde door null als…
ifif/else constructie