Prakticum SQL

advertisement
Practicum SQL Les 2
DOWNLOAD eerst de database keuzepakket van www.evertkok.nl/informatica en download.
Beschouw de volgende database Leerlingendatabase met de enige tabel Leerlingen tabel.
De structuur van de tabel ziet er als volgt uit :
Je ziet dat de tabel 3 velden bevat namelijk id van het type autonummering, naam van het type
string en profiel van het type string.
Bovendien staat er voor id een sleutel vermeld. Deze sleutel geeft aan dat de waarde in dit
veld uniek moet zijn.
Je ziet dat je links boven in Access kunt overschakelen van de ontwerpweergave naar de
gegevensbladweergave. In de gegevensbladweergave zijn de gegevens echt zichtbaar.
Om in deze tabel een query uit te voeren kun je kiezen voor query maken in de
ontwerpweergave.
Voeg dan een tabel toe , de leerlingentabel.
En kies linksboven voor SQL.
Vul de SQL opdracht in en bekijk het resultaat.
Syntax.
In Access eindigt een SQL opdracht altijd met een ;
De overige syntax is steeds
SELECT wat je wilt zien als uitkomst
FROM naam van de tabel
WHERE voorwaarde waar je op zoekt.
Vervolg
Met het SQL commando GROUP BY kun je
groeperingen maken. Bijvoorbeeld om een overzicht te maken van alle leerlingen die het
profiel CM of EM hebben.
SELECT naam,profiel
FROM leerlingen
WHERE profiel like “*M”
GROUP BY naam,profiel;
Je kunt een Group by vaak gebruiken om gegevens te tellen
SELECT profiel , count(*)
FROM leerlingen
GROUP BY profiel;
Dit geeft als uitkomst:
De veldnaam EXPr1001 heeft ACCESS zelf verzonnen, om dat te veranderen voeg je AS
gevolgd door de tekst tussen quotes toe.
SELECT profiel , count(*) AS Totaal
FROM leerlingen
GROUP BY profiel
Nu komt er het volgende uit:
Je kunt met het commando ORDER BY gaan sorteren.
SELECT naam,profiel
FROM leerlingen
ORDER BY naam;
Ook kun je oplopend en aflopend sorteren met ASC en DESC.
Probeer maar eens uit
SELECT naam,profiel
FROM leerlingen
ORDER BY naam DESC;
en
SELECT naam,profiel
FROM leerlingen
ORDER BY naam ASC;
Je kunt zelfs op verschillende velden , bijvoorbeeld eerst op naam en dan bij dezelfde namen
op profiel.
SELECT naam,profiel
FROM leerlingen
ORDER BY naam,profiel ASC;
Met de functie MAX kun je de maximale waarde in een kolom bepalen.
SELECT MAX(id)
FROM leerlingen
Net zo kent SQL de volgende functies:
MAX om de maximale waarde in een kolom te bepalen.
MIN om de minimale waarde van een kolom te bepalen.
AVG om de gemiddelde waarde van een kolom te bepalen.
SUM om alle waarden uit een kolom bij elkaar op te tellen.
COUNT om alle rijen te tellen.
Let erop dat in querys vaak de notatie met een punt wordt aangegeven.
Bijvoorbeeld leerlingen.profiel verwijst naar de tabel leerlingen en het veld profiel.
Vooral als een veld met dezelfde naam in verschillende tabellen voorkomt wil Access weten
Welk veld wordt bedoeld met andere woorden als je dat dan niet doet zal er een foutmelding
ontstaan.
Probeer nu eens de volgende vragen met behulp van een Query te beantwoorden.
1.
2.
3.
4.
Wat is de grootste id in de leerlingen tabel ?
Hoeveel leerlingen zitten er in de tabel leerlingen met het profiel NG ?
Hoeveel leerlingen hebben of een NG of een NT profiel ?
Laat in een kolom het aantal verschillende namen zien, er komt dus als uitkomst een
getal op het scherm.
5. Geef de profielen oplopend gesorteerd.
6. Geef de namen van de leerlingen aflopend gesorteerd ?
7. Wat is de minimale waarde van id ?
8. Hoeveel Nelleke’s zitten er in de leerlingen tabel.
9. Bepaal de gemiddelde waarde van id .
10. Laat een opsomming zien met de gegevens id, naam, profiel en waarbij het aantal
leerlingen gegroepeerd zijn per profiel NT en CM. Gebruik GROUP BY.
Download