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’
| Operator | Betekenis |
|---|---|
| = | 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:
| Operator | Betekenis |
|---|---|
| and | Beide expressies moeten waar zijn |
| or | Een van beide expressies moet waar zijn |
| not | De 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 studentKolommen (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
| Functie | Uitwerking |
|---|---|
| instr | zoek naar het voorkomen van een substring |
| length | lengte bepalen van een string |
| lower | zet alles om naar lowercase |
| upper | zet alles om naar uppercase |
| ltrim | haal tekens (standaard spatie) weg links |
| rtrim | haal tekens (standaard spatie) weg rechts |
| substr | haal een substring uit een string |
| concat | plakken van meerdere strings aan elkaar |
| like | eenvoudige tekstpatronen met wildcards % en _ |
| sounds_like | zoekopdrachten op uitspraak |
| regexp | zoekopdrachten op basis van regular expressions |
Voorbeeld tekst functie:
select upper (voornaam)
, length (voornaam)
, ltrim (voornaam)
, substr (voornaam,2,5)
from studentNumerieke functies
| Functie | Werking |
|---|---|
| mod | de modulus functie |
| log | berekening van het logaritme |
| ln | natuurlijk logaritme |
| round | afronden van een getal |
| ceil | afronding naar boven |
| floor | afronding naar beneden |
| sqrt | wortel |
Datum functies
| Functie | Werking |
|---|---|
| curdate | retourneert de actuele datum |
| curtime | retourneert de actuele tijd |
| now | retourneert datum en tijd |
| period_diff | verschil in maanden tussen twee data |
| datediff | datum min andere datum (dagen) |
| dayname | naam van de weekdag |
| day | dag van de maand |
| week | weeknummer |
algemene functies
| Functie | Werking |
|---|---|
| case | zet een waarde om in een andere waarde |
| ifnull | vervangt een null door een andere waarde |
| nullif | vervang een waarde door null als… |
| if | if/else constructie |