SQL is het hart van vrijwel elke database. De Structured Query Language geeft je één manier van werken voor SQL Server, Oracle, MySQL, PostgreSQL en de rest, en daarmee is het de nuttigste taal die je kunt leren als je met gegevens werkt maar geen programmeur bent. Wie SQL kent, haalt zijn eigen cijfers uit het systeem in plaats van te wachten tot iemand van IT tijd heeft.

Waarom SQL

De taal is oorspronkelijk bij IBM ontwikkeld, met de relationele algebra als basis, en met de bedoeling dat managers zelf hun bedrijfsgegevens konden analyseren. Dat idee is nooit helemaal uitgekomen, en toch is dat precies waar SQL vandaag het meest voor gebruikt wordt.

Drie dingen maken het de moeite waard. Je kunt er elke vraag aan je gegevens in stellen, hoe specifiek ook, en het antwoord meteen als rapportage gebruiken. De kennis is niet gebonden aan één product: wat je in SQL Server leert, gebruik je bijna ongewijzigd in Oracle of MySQL. En je werkt in de bron zelf, dus je hoeft geen gegevens te exporteren en in een spreadsheet te plakken, met alle kans op fouten die daarbij hoort.

Hoe het werkt

Een query is niets anders dan een opdracht in tekst die je naar het databasesysteem stuurt. Dat systeem, het DBMS, verwerkt hem en stuurt de gevraagde gegevens terug. De taal valt in drie delen uiteen.

DML, Data Manipulation Language. Het deel waarmee je gegevens opvraagt, toevoegt, wijzigt en verwijdert: SELECT, INSERT, UPDATE, DELETE. Hier zit het werk dat je dagelijks doet.

DDL, Data Definition Language. Het deel waarmee je de structuur zelf vastlegt: tabellen en kolommen maken, aanpassen en weggooien.

DCL, Data Control Language. Het deel waarmee je regelt wie wat mag: rechten uitdelen en intrekken.

In de praktijk begin je bij SELECT, en daar kom je een heel eind mee. Filteren met WHERE, sorteren met ORDER BY, groeperen en tellen met GROUP BY, en tabellen aan elkaar knopen met JOIN: dat is het gereedschap waar de meeste vragen mee te beantwoorden zijn.

Waar mensen op vastlopen

Vier dingen, in deze volgorde. De JOIN: welke rijen overblijven bij een inner join en welke bij een left join, en waarom je resultaat plotseling meer regels heeft dan je tabel. Het verschil tussen WHERE en HAVING. NULL, dat zich anders gedraagt dan een lege waarde en waar vergelijkingen op stuklopen. En een query die klopt maar te langzaam is, waarbij het meestal om een ontbrekende index gaat.

Dat zijn geen ingewikkelde onderwerpen, maar ze kosten je een middag als je ze zelf moet uitzoeken en tien minuten als iemand het uitlegt.

SQL en AI

Je kunt inmiddels in gewone taal om een query vragen en er een terugkrijgen die er goed uitziet. Dat werkt vaak, en het gaat mis op de plekken waar het niet te zien is: een join die stille dubbelingen oplevert, een filter dat een deel van de rijen weggooit, een SUM over een verdubbelde rij. De uitkomst is dan een getal, en een getal is nooit zichtbaar fout.

Daarom is SQL leren juist nu nuttig. Niet om alles zelf te typen, maar om te kunnen controleren wat er wordt voorgesteld: klopt de join, staat het filter op de juiste plek, en klopt het aantal rijen met wat je verwacht. En bedenk dat een gegenereerde UPDATE of DELETE zonder WHERE in de productiedatabase een dure les is. Test zulke opdrachten eerst als SELECT.

SQL leren

In de tweedaagse cursus SQL Basis leer je de basisprincipes, gegevens opvragen, sorteren, filteren en aanpassen, werken met subquery's, tabellen maken en aanpassen, en de verschillen tussen de databasesystemen. Cursisten gaven de training een 8,4, gemiddeld over 74 beoordelingen.

Ben je al verder, dan is er de cursus SQL Vervolg. Werk je met SQL Server, dan sluit Transact-SQL beter aan.