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 |
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.