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.