SQL is een standaardtaal om data in een database op te slaan, te bewerken en op te halen. Met deze cursus leer je SQL te gebruiken in MySQL, SQL Server, MS Access, Oracle en andere databasesystemen. SQL staat voor Structured Query Language. Een query is een vraag in het Engels. Als je een query maakt, stel je dus eigenlijk een vraag aan de database. Maar een query kan ook bedoeld zijn om iets te veranderen aan de database, bijvoorbeeld om een wijziging in een record aan te brengen of om een record toe te voegen. Dat wijzigen en toevoegen van records zit niet in deze cursus. Er wordt enkel geleerd hoe je een bestaande database kunt bevragen met SQL.
Standaarden
We gaan werken volgens de ANSI-standaard. ANSI staat voor American National Standards Institute. Dit instituut bestaat al sinds 1918 en het beheert en administreert standaarden en afspraken. SQL is de standaard op het gebied van Relational Database Management Systems. Deze taal werd oorspronkelijk ontworpen door IBM halverwege de jaren 70 van de vorige eeuw. In de jaren 80 werd het al veel gebruikt en in 1986 werd het een standaard volgens ANSI. Tot op heden zijn er drie ANSI-standaarden van SQL geregistreerd. Ze worden genoemd naar het jaar waarin ze voor het eerst werden voorgesteld en ze zijn bekend onder de namen ANSI-86, ANSI-92 en ANSI-99.
Oracle
We maken gebruiken van de employees tabellen van Oracle. Het is een database met twintig werknemers die hier en daar een klein beetje aangepast is ten behoeve van deze cursus. De gegevens zijn opgeslagen in acht tabellen:
•employees
•departments
•jobs
•locations
•job_grades
•regions
•countries
•job_history
De volgorde en de inhoud van de onderwerpen is grotendeels gebaseerd op de Engelstalige cursus Database Programming with SQL van Oracle die docenten en leerlingen gratis kunnen doen bij de Oracle Academy. De onderdelen die enkel in een Oracle omgeving werken zijn weggelaten. Alles wat hier geleerd wordt, is volgens de ANSI-standaard. Veel dank zijn we verschuldigd aan Harriët van der Molen van Oracle want zij heeft er voor gezorgd dat we drie keer naar Oracle mochten komen. Toon Koppelaars van Oracle heeft al het materiaal gecontroleerd op fouten en op relevantie en tijdens de sessies bij Oracle hebben we veel van hem geleerd over hoe SQL werkelijk wordt toegepast in het bedrijfsleven. Ook zijn didactische tips waren heel waardevol.
Er zijn verschillende soorten SQL commando's. De belangrijkste categorieën met voorbeelden tussen haakjes:
1.DDL - Data Definition Language (CREATE TABLE - ALTER TABLE - DROP TABLE etc.)
2.DML - Data Manipulation Language (INSERT - UPDATE - DELETE)
3.DQL - Data Query Language (SELECT)
4.DCL - Data Control Language (GRANT - REVOKE etc.)
Nogmaals: in deze cursus werken we alleen maar met Data Query Language, dus alleen maar met het bevragen van een database. Overige commando's werken niet aangezien de database read-only is.
Alle query's in deze cursus kunnen geprobeerd worden via tabellen in een MySQL omgeving. De database die gebruikt wordt, is op alle pagina's te openen door links bovenaan in het scherm (net boven Contents) te klikken op het blauwe databasesymbool met de witte letters SQL.
Kies daarna voor het tabblad SQL. De database kan door meerdere deelnemers van meerdere scholen tegelijkertijd gebruikt worden. Al het materiaal is getest op een aantal scholen, maar als er opmerkingen zijn bij het materiaal dan is het mogelijk te reageren via de Feedback knop bovenaan het scherm.
Het is ook mogelijk de tabellen te importeren in een eigen database omgeving. Download het script hier en run het in een eigen database om de tabellen aan te maken en te vullen. Als alle leerlingen een eigen database hebben, kunnen ze ook verder met het leren van de DML commando's (INSERT - UPDATE - DELETE). Maar in deze cursus komen deze DML commando's dus niet aan de orde.
Vragen en opdrachten
In het materiaal worden voortdurend voorbeelden gegeven van query's. Het is de bedoeling dat de leerlingen deze query's proberen in de database zodat ze het juiste gevoel krijgen met het maken van query's. Het heeft uiteraard geen nut de query's vanuit de cursus te kopiëren naar de database; ze moeten ze echt zelf typen, fouten maken en roze schermen krijgen!
Elke sectie wordt afgesloten met een aantal vragen. De leerlingen moeten nadenken over de bestudeerde stof en kunnen de antwoorden meteen zelf controleren. Daarna volgen er opdrachten die uitgevoerd moeten worden met behulp van query's op de database. De antwoorden moeten ter controle worden ingeleverd bij de docent. Bij de eerste secties zijn de opdrachten vrij eenvoudig, maar ze worden steeds moeilijker en uitgebreider. De ervaring leert dat het op dat moment beter is om de opdrachten in groepjes te laten maken en inleveren. Leerlingen kunnen gefrustreerd raken als ze query's niet opgelost krijgen en ze moeten juist gestimuleerd worden! Dat kan door ze samen een probleem op te laten lossen, maar dan moet het niveau binnen het groepje wel ongeveer gelijk zijn.
Het moet in principe mogelijk zijn dat leerlingen geheel zelfstandig deze cursus doornemen. De cursus kan worden afgesloten met een toets voor een cijfer. De uitwerkingen van de opdrachten en toetsen zijn door docenten op te vragen met een e-mail naar info@informaticavo.nl. Er moet dan wel een e-mailadres van een school worden gebruikt.