ACID-transacties
ACID-transacties zijn de vier garanties (Atomicity, Consistency, Isolation, Durability) die zorgen dat je data correct blijft, ook als een p...
Lees meerSQL is de standaardtaal om relationele databases te bevragen en te beheren. Je beschrijft welk resultaat je wil en de database zoekt zelf de snelste weg ernaartoe. Meer dan vijftig jaar na zijn ontstaan bij IBM is SQL nog altijd de taal die zowat elke database, elk warehouse en elk BI-tool begrijpt.
SQL staat voor Structured Query Language. Het is de standaardtaal om relationele databases te bevragen en te beheren: databases die hun data bewaren in tabellen met rijen en kolommen. Zowat elk systeem dat met tabellen werkt begrijpt SQL, van de database achter je facturatiepakket tot het datawarehouse achter je rapporten.
SQL is declaratief. Je beschrijft welk resultaat je wil, niet hoe de database het moet berekenen. Een voorbeeld:
SELECT klant, SUM(bedrag) FROM verkopen WHERE jaar = 2025 GROUP BY klant
Lees dat als een zin: geef me per klant het totale verkoopbedrag van 2025. Welke index de database gebruikt en in welke volgorde ze de tabellen doorloopt, dat beslist de engine zelf. Vergelijk het met een bestelling in een restaurant: jij zegt wat je wil eten, de keuken bepaalt hoe het gerecht tot stand komt.
In 1970 beschreef IBM-onderzoeker Edgar Codd het relationele model: data opslaan in tabellen die je via sleutels aan elkaar koppelt. IBM startte daarop het onderzoeksproject System R om te bewijzen dat zo'n database in de praktijk kon werken. Twee collega's, Donald Chamberlin en Raymond Boyce, ontwierpen er de querytaal SEQUEL voor, die ze in 1974 voorstelden. De naam SEQUEL bleek al als handelsmerk geregistreerd door een ander bedrijf, dus schrapte IBM de klinkers: SQL.
De taal sloeg aan buiten IBM en werd in 1986 een Amerikaanse ANSI-standaard. Een jaar later volgde de internationale ISO-norm, die vandaag nog altijd wordt onderhouden als ISO/IEC 9075. De recentste versie is SQL:2023.
Alle SQL-instructies vallen uiteen in drie groepen.
Lezen. Met SELECT haal je data op: je kiest kolommen, filtert rijen met WHERE en vat samen met GROUP BY. Via joins koppel je tabellen aan elkaar, bijvoorbeeld je verkooplijnen aan je klantentabel, zodat je per regio of per segment kan rapporteren.
Wijzigen. INSERT voegt rijen toe, UPDATE past ze aan en DELETE verwijdert ze. In een operationele database gebeurt dat de hele dag door, meestal onzichtbaar, vanuit de software die erop draait.
Structuur bouwen. Met CREATE TABLE en aanverwante instructies (samen de DDL, data definition language) definieer je tabellen, kolommen, datatypes en rechten. Zo leg je vooraf vast dat een besteldatum een echte datum moet zijn en een klantnummer uniek.
Voor dagelijks rapporteringswerk gebruik je vooral de leeskant. Wie datapijplijnen of applicaties bouwt, gebruikt alle drie.
De ISO-standaard legt de kern vast, maar elke databasemaker breidt die uit met eigen functies en syntax. Zo'n variant heet een dialect. De bekendste:
T-SQL (Transact-SQL), het dialect van Microsoft. Je vindt het in SQL Server, Azure SQL en in de warehouses en SQL-endpoints van Microsoft Fabric.
PostgreSQL, een open-source database die dicht bij de standaard blijft en aan Berkeley zijn wortels heeft.
MySQL, de open-source database achter veel websites en webapplicaties.
De kern is overal gelijk, de randen verschillen. Wil je de eerste tien rijen van een resultaat? In T-SQL schrijf je SELECT TOP (10), in PostgreSQL en MySQL eindigt je query op LIMIT 10. Ook datum- en tekstfuncties verschillen per dialect. Een query verhuist daardoor zelden zonder kleine aanpassingen van het ene systeem naar het andere, maar wie één dialect kent, leest ze allemaal.
SQL is allang niet meer alleen de taal van klassieke databases. Ook de analytische kant van de datastack praat SQL.
Een data warehouse bevraag je standaard met SQL: daar is het voor gebouwd. Maar ook een lakehouse, dat zijn data in open bestandsformaten bewaart, krijgt er een SQL-laag bovenop. In Microsoft Fabric krijgt elk lakehouse automatisch een SQL analytics endpoint: een read-only T-SQL-laag over je Delta-tabellen, zonder dat je iets moet opzetten. En Spark, de motor achter veel lakehouses, heeft met Spark SQL zijn eigen variant.
BI-tools leunen er even hard op. Power BI in DirectQuery-modus vertaalt elke klik in je rapport naar query's op de onderliggende bron; bij een SQL-database zijn dat SQL-query's die live worden uitgevoerd. Je ziet ze zelfs passeren als je een trace draait.
Daarom zit SQL na vijftig jaar nog overal: het werd de gemeenschappelijke taal tussen tools. Wie een nieuwe engine bouwt, geeft die een SQL-interface, omdat elke analist en elk rapporteringstool die taal al spreekt.
In de Microsoft-stack kom je naast SQL nog drie talen tegen. Ze concurreren niet met elkaar, ze bedienen elk een andere laag.
DAX is de rekentaal van het semantisch model in Power BI. SQL haalt data op en bereidt ze voor; DAX rekent verder op het model dat daarop gebouwd is en reageert live op de filters in je rapport. Marges, year-to-date en vergelijkingen met vorig jaar horen in DAX. De tabellen waarop die berekeningen draaien, komen typisch via SQL uit je warehouse.
KQL is de taal van Microsoft voor logs, telemetrie en tijdreeksen, onder meer in Fabric Real-Time Intelligence. Voor gestructureerde bedrijfsdata met vaste schema's blijft SQL de logische keuze; voor miljoenen logregels met tijdsgebonden vragen werkt KQL vlotter. Een KQL-database in Fabric stelt zich bovendien ook open via een SQL-endpoint, zodat Power BI er zonder omwegen op kan rapporteren.
Power Query (met de taal M) is de transformatielaag van Power BI en Fabric: data ophalen en klaarmaken vóór ze in je model belanden. Achter de schermen vertaalt Power Query veel van die stappen gewoon naar SQL zodra de bron een database is; dat heet query folding. De vuistregel: doe transformaties zo dicht mogelijk bij de bron. Wat in SQL kan, doe je in SQL. Power Query vult aan, en DAX houd je voor berekeningen die op filters moeten reageren.
Taalmodellen schrijven behoorlijk goede SQL. In Fabric genereert Copilot een T-SQL-query uit een vraag in gewone taal, zoals: toon de omzet per categorie van vorig jaar. Ook GitHub Copilot en andere AI-assistenten doen dat in de editor. Dat scheelt tijd, vooral bij joins over veel tabellen.
Microsoft zet er zelf de waarschuwing bij dat vergissingen mogelijk blijven. Terecht: een gegenereerde query ziet er vaak juist uit en draait zonder foutmelding, terwijl het resultaat toch niet klopt. Een join die rijen dubbel telt of een filter die net iets te breed staat, zie je alleen als je de query zelf leest.
Het werk verschuift dus van schrijven naar nalezen. Je moet SQL goed genoeg kennen om een gegenereerde query te controleren voor je de cijfers doorstuurt naar je management.
SQL kennen blijft de basisvaardigheid. Wie met data werkt, komt vroeg of laat bij SQL uit. Het is de snelste manier om te controleren wat er echt in een tabel zit, en de gemeenschappelijke taal tussen jou, je tools en je AI-assistent.
Let op voor SQL-injectie als je zelf software bouwt. Plak nooit tekst van gebruikers rechtstreeks in een query. Een kwaadwillige bezoeker kan dan zijn eigen SQL binnensmokkelen en je data lezen of wissen. Gebruik geparametriseerde query's; elk modern framework ondersteunt dat.
Geef rapportering een account dat alleen mag lezen. Een BI-tool of een analist heeft zelden UPDATE- of DELETE-rechten nodig. Aparte leesrechten kosten niets en voorkomen dat een verkeerd geplakte query je brondata raakt.
1. Moet ik nog SQL leren nu AI query's schrijft?
Ja, misschien zelfs meer dan vroeger. AI schrijft de query in seconden, maar jij blijft verantwoordelijk voor het resultaat. Wie geen SQL leest, ziet een verkeerde join of een te brede filter niet. Het goede nieuws: de basis leren gaat vlotter dan ooit, net omdat je een AI-assistent naast je hebt die elke stap uitlegt.
2. Is SQL een programmeertaal?
Het is in de eerste plaats een querytaal: je beschrijft resultaten in plaats van stap voor stap instructies te geven. Dialecten zoals T-SQL voegen daar variabelen, procedures en foutafhandeling aan toe, waarmee je al een heel eind programmeert. Voor volledige applicaties combineer je SQL met een taal als Python of C#.
3. Wat is het verschil tussen SQL en MySQL?
SQL is de taal, MySQL is een database die die taal spreekt. Hetzelfde geldt voor PostgreSQL, SQL Server en Azure SQL: allemaal producten, allemaal met SQL als interface.
4. Werkt SQL ook op Excel-bestanden of CSV's?
Niet rechtstreeks: SQL heeft een engine nodig die je bestanden als tabellen kan lezen. Laad je ze in een database of een lakehouse, dan kan je ze gewoon bevragen. Voor eenmalige analyses op losse bestanden is Power Query vaak de kortere weg.
5. Welk dialect leer ik het best eerst?
Het dialect van het systeem waar je dagelijks mee werkt. In een Microsoft-omgeving is dat T-SQL. De kern met SELECT, joins en GROUP BY is overal gelijk, dus die kennis neem je mee naar elk ander systeem.
ACID-transacties zijn de vier garanties (Atomicity, Consistency, Isolation, Durability) die zorgen dat je data correct blijft, ook als een p...
Lees meerEen afleidingsregel legt uit hoe een nieuwe waarde wordt berekend of bepaald uit bestaande data. Ze maakt businesslogica achter velden, metr...
Lees meerApache Hudi is een open tabelformaat dat een data lake op object storage transactioneel maakt. Het blinkt uit in snelle upserts, verwijderin...
Lees meerApache Iceberg is een open tabelformaat voor grote analytische datasets op object storage. Het transformeert een map met Parquet-bestanden i...
Lees meerApache Kafka is een open-source platform dat stromen van events opslaat en doorgeeft: producenten schrijven berichten naar een topic, afneme...
Lees meer
Zeven nieuwe Data Panda-connectors uit juni 2026, met concrete toepassingen voor rapportering, voorraad, finance, ticketing, planning en ope...
Nieuw in Microsoft Fabric? Zo verschillen een lakehouse en een warehouse, in mensentaal: wat ze doen, wanneer je wat kiest en wanneer je bei...