Skip to main content

SQL Queries met opdrachten

SQL

Als je gegevens uit een RDBMS wilt halen dan moet je gebruik maken van SQL (Strucutered Query Language).

SQL is een gestandaliseerde taal die voor alle relationele databases (zoals MySQL, MariaDB, Postgress, Oracle, Microsoft SQL server) hetzelfde is1.

String of getal?

Strings staan tussen '' en geven aan dat iets geen getal is. Tabel- en kolomnamen staan in principe niet tussen ''. Indien tabelnamen of kolomnamen wel een spatie bevatten dan moeten die tussen speciale `` worden gezet. Dit zijn de zognaamde back-ticks, ene quote die achterover leunt.

Select

Als je een met SQL gegevens wilt raadplegen dan begin je altijd met SELECT.

Na de select komt altijd de FROM. De FROM geeft aan uit welke tabel je je gegevens haalt. Voorlopg halen we onze gegevens ui één tabel.

Als je niet alle rows wilt zien

dan moet je een WHERE toevoegen. Daarbij specificeer je dan welke rows je wilt zien.

Voorbeelden

Query Uitleg
SELECT voornaam, achternaam
FROM persoon
WHERE voornaam = 'Skander'
Laat voornaam en achternaam zien van idereen die als voornaam Skander heeft. Let op de " rondom Skander. Dit geeft aan dat Skander een string is.
SELECT count(*)
FROM persoon
WHERE voornaam like ‘K%’
Count(*) laat alleen het aantal zien. Dus bij deze query worden alle personen geteld van wie de voornaam met een K begint.
SELECT count(*)
FROM persoon
WHERE voornaam like ‘%’
Deze query lijkt op de vorige maar hier staat alleen een '%' en dat betekent elk karakter nul één of meer keren. Dus hier worden alle voornamen geselecteerd. De query kan dus ook zonder WHERE kunnen worden uitgevoerd.
SELECT *
FROM vakken
WHERE score > 6
Laat alle informatie zien van alle vakken waarvoor geldt dat de score groter is dan 6. Let op dat 6 niet tusen '' staat; het is immers een getal.
SELECT count(*)
FROM vakken
WHERE score > 6 AND score < 8
Laat het aantal vakken zien waar voor de score groter is dan 6 en kleiner is dan 8 (er dus tussenin ligt).
SELECT *
FROM vakken
WHERE score = 6 OR score = 8
Laat alle informatie van alle vakken zien waarvoor een score van een 6 of een 8 is behaald.
SELECT *
FROM vakken
WHERE vaknaam <> 'DB Introduction'
ORDER BY vaknaam
Laat alle informatie zien van alle vakken behalve het vak 'DB Introduction' en sorteer de lijst van vakken op achternaam.

Opdrachten

Beschrijf nu wat de volgende queries doen:

Query Nr. Query Uitleg
1 SELECT voornaam, achternaam
FROM persoon
WHERE lengte = 192
 
2 SELECT voornaam, achternaam
FROM persoon
WHERE lengte >= 192
 
3 SELECT voornaam, achternaam
FROM persoon
WHERE lengte >= 180
AND lengte <= 190
 
4 SELECT voornaam, achternaam
FROM persoon
WHERE lengte < 180
AND lengte > 190
 
5 SELECT count(*)
FROM persoon
WHERE lengte < 180
AND lengte > 190
 
6 SELECT voornaam, achternaam
FROM persoon
WHERE voornaam = 'Mo'
 
7 SELECT voornaam, achternaam
FROM persoon
WHERE voornaam like 'Mo%'
 
8 SELECT count(*)
FROM persoon
WHERE voornaam like 'Mo%'
 
9 SELECT voornaam, achternaam
FROM persoon
WHERE voornaam like 'Mo%'

OR voornaam like 'Ma%'

 
10 SELECT voornaam, achternaam
FROM persoon
WHERE voornaam like 'Mo%' AND voornaam like 'Ma%'
 
11 SELECT voornaam, achternaam
FROM persoon
WHERE voornaam = 'Mo'
ORDER by achternaam
 
12 SELECT voornaam, achternaam
FROM persoon
WHERE voornaam = 'Mo'
ORDER by achternaam desc
 

 


1) Er zijn tussen de verschillende databases soms wel kleine verschillen in SQL.