243e2ws
Operatoren
Vergelijkende operatoren
| Operator | Betekenis |
|---|---|
| = | Gelijk aan |
| > | Groter dan |
| < | Kleiner dan |
| >= | groter of gelijk aan |
| ⇐ | kleiner dan of gelijk aan |
| !=, <> | Niet gelijk aan |
Logische operatoren
Select <Kolomnamen>
from <tabel>
where <conditie>
order by <kolomnaam>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’Overzicht 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
In Operator
Met de IN operator kun je een conditie opgeven waarbij je wilt dat een waarde voorkomt in een groep van waardes
ls je wilt weten welke studenten uit Nijmegen, Arnhem of Oss komen dan gebruik je de volgende query Dit kan korter
select *
from student
where woonplaats = 'Nijmegen'
or woonplaats = ‘Arnhem'
or woonplaats = ‘Oss' Like Operator
net als op Linux en windows is het mogelijk om Wildcards te gebruiken Dit kan alleen in de combinatie met de operator like
De wildcards _ en % hebben dezelfde betekenis in SQL als ? en * op Linux
| SQL Wildcards | Betekenis | Op Linux |
|---|---|---|
| _ | Exact 1 willekeurig teken | ? |
| % | 0, 1 of meer willekeurige tekens | * |
Between
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 Operator
Om te toetsen of iets null is gebruik je niet = null maar is null
Null
-
Met de where clausule toon je rijen waar de conditie (voorwaarde) klopt
-
⇒ Kun je er ‘ja’ (of TRUE) op antwoorden?
-
Met ‘=’ vergelijk je 2 expressies (uitdrukkingen)
-
Je kunt geen ja antwoorden op de vraag:
- Bij welke rijen is niets gelijk aan niets?
Met ‘IS NULL’ check je of een attribuut geen waarde heeft
Expressies
Een expressie (uitdrukking) kun je opnemen in de select clausule Bijvoorbeeld
select student_nr/2
, voornaam
, ‘hello world’
from student Expressies hoeven niet altijd over de inhoud van kolommen te gaan
select 1+1
from studenten dit is handig om bijv om te weten te komen hoeveel rijen er zijn
Concat
Kolommen (tekst) kun je aan elkaar plakken met de functie concat
select concat(voornaam,' ',achternaam)
from student SELECT ZONDER FROM
In MySQL kun je de from clausule weglaten tenzij je kolommen/attributen gebruikt die refereren aan tabellen
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
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 | maakt lowercase |
| upper | maakt uppercase |
| ltrim | Haal tekens (standaard is spatie) weg aan de linker kant |
| rtrim | Haal tekens (standaard is spatie) weg aan de Rechter kant |
| 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 |
Numerieke functies
| Functie | werking |
|---|---|
| mod | De modulus functie |
| log | Berekening van het logaritme |
| ln | Natuurlijk logaritme |
| round | Afronden van een getal |
| ceil | Afroning naar boven |
| floor | Afronding naar beneden |
| sqrt | Wortel |
Datum functies
De database is altijd in staat om tijdseenheden op te tellen bij een datum
| Functie | werking |
|---|---|
| curdate | returns current date |
| curtime | returns current time |
| 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
Algemene functies zijn functies die op alle datatypes werken
Voorbeelden van algemene functies zijn:
| Functie | Werking |
|---|---|
| case | Zet een waarde om in een andere waarde |
| ifnull | Vervangt een null door een andere waarde |
| nullif | Vervangt een waarde door null als… |
| if | If/else constructie |
Opdrachten
select * from student
where voornaam like '%c%'
select * from student
where null is null
select *
from student
where voornaam like '%a%' and voornaam like '%e%' or 1 = 1
select student_nr/2
, voornaam
, 'hello world'
from student
select 1+1
from student
select 1+1;
select curdate();
select now()
select voornaam, achternaam, geb_datum
from student
where geb_datum is not null
order by geb_datum asc
limit 1
select voornaam
from student
where instr(lower(voornaam), 'a') =0
select *
from student
select *
from klas
select *
from docent
select distinct woonplaats
from student
select voornaam
from student
order by voornaam asc
select floor(sqrt(student_nr)/9)
from student
select voornaam, tussenvoegsels, achternaam, klas_naam
from student
join klas k on student.klas_id = k.klas_id
order by student.klas_id, achternaam asc
select voornaam, klas_naam
from student
join klas k on student.klas_id = k.klas_id
where klas_naam = 'Bin1a'
order by student.klas_id asc
select *
from