Definitie: SQL (Structured Query Language) is de standaardtaal om gegevens in een relationele database op te vragen, toe te voegen, te wijzigen en te verwijderen. Bijna elke zakelijke applicatie die met tabellen werkt, zoals MySQL, PostgreSQL, SQL Server of Oracle, gebruikt SQL.
In het kort
- SQL is in de jaren zeventig bij IBM ontwikkeld door Donald Chamberlin en Raymond Boyce, oorspronkelijk onder de naam SEQUEL.
- ANSI maakte SQL in 1986 tot standaard, ISO in 1987. Daardoor werken de basisopdrachten in vrijwel elke relationele database.
- De bekendste opdrachten zijn SELECT, INSERT, UPDATE en DELETE.
- Elke database heeft een eigen dialect, zoals T-SQL bij Microsoft SQL Server en PL/SQL bij Oracle.
Wat is SQL?
SQL is de taal waarmee je met een relationele database praat. In zo’n database staan gegevens in tabellen met rijen en kolommen, zoals een tabel met klanten en een tabel met orders. Met SQL vraag je bijvoorbeeld: geef alle orders van deze klant uit het afgelopen jaar, gesorteerd op datum.
SQL wordt uitgesproken als “es-kju-el” of als “sequel”. Die tweede uitspraak verwijst naar de oorspronkelijke naam. IBM vertelt dat zijn onderzoekers Donald Chamberlin en Raymond Boyce de taal in de jaren zeventig ontwikkelden op basis van het relationele model; in 1979 werd SQL commercieel beschikbaar.
SQL is geen programmeertaal zoals PHP of JavaScript. Je beschrijft wat je wilt hebben, niet hoe de computer het moet opzoeken. De database bepaalt zelf de snelste manier.
Welke soorten SQL-opdrachten zijn er?
IBM deelt SQL-opdrachten in vijf groepen in:
| Groep | Waarvoor | Voorbeelden |
|---|---|---|
| DDL (Data Definition Language) | Structuur van tabellen vastleggen | CREATE TABLE, ALTER TABLE, DROP TABLE |
| DML (Data Manipulation Language) | Gegevens toevoegen, wijzigen, verwijderen | INSERT, UPDATE, DELETE |
| DQL (Data Query Language) | Gegevens opvragen | SELECT |
| DCL (Data Control Language) | Toegang regelen | GRANT, REVOKE |
| TCL (Transaction Control Language) | Transacties afronden of terugdraaien | COMMIT, ROLLBACK |
Hoe ziet een SQL-query eruit?
Een eenvoudige vraag om alle klanten uit Utrecht op te halen:
SELECT naam, email
FROM klanten
WHERE plaats = 'Utrecht'
ORDER BY naam;Met JOIN combineer je tabellen. Deze query toont per klant het aantal orders:
SELECT k.naam, COUNT(o.id) AS aantal_orders
FROM klanten k
JOIN orders o ON o.klant_id = k.id
GROUP BY k.naam;Zo zie je de kracht van een relationele database: gegevens staan maar één keer opgeslagen en worden via sleutels aan elkaar gekoppeld.
Welke databases gebruiken SQL?
| Database | Kenmerk |
|---|---|
| MySQL en MariaDB | Open source, veel gebruikt bij webapplicaties en WordPress |
| PostgreSQL | Open source, uitgebreid en sterk in complexe query’s |
| Microsoft SQL Server | Veel gebruikt in Microsoft-omgevingen, dialect T-SQL |
| Oracle Database | Veel gebruikt bij grote organisaties, dialect PL/SQL |
| IBM Db2 | Gebruikt in grote bedrijfsomgevingen |
| SQLite | Kleine database in één bestand, vaak in apps |
Transacties: alles of niets
Een belangrijk onderdeel van SQL zijn transacties. Een transactie bundelt meerdere opdrachten tot één geheel. Neem een order: de voorraad gaat omlaag, de order wordt aangemaakt en de factuur wordt klaargezet. Gaat er halverwege iets mis, dan draait ROLLBACK alle stappen terug. Lukt alles, dan legt COMMIT het definitief vast. Zo voorkom je dat er een order zonder factuur of een factuur zonder voorraadmutatie ontstaat.
Voordelen en nadelen van SQL
Voordelen
- Standaard. Wie SQL kent, kan met vrijwel elke relationele database werken.
- Krachtig. Met één query combineer, filter, groepeer en tel je gegevens uit meerdere tabellen.
- Betrouwbaar. Volgens Aerospike is SQL geschikt voor grote hoeveelheden gegevens en veel gelijktijdige schrijfacties en transacties.
- Volwassen. Er zijn veel tools, kennis en ontwikkelaars beschikbaar.
Nadelen
- Dialecten. Geavanceerde functies verschillen per database, waardoor overstappen werk kost.
- Vaste structuur. Een wijziging in de tabelstructuur vraagt een migratie.
- Prestaties vragen kennis. Een onhandige query of ontbrekende index maakt een applicatie traag naarmate de gegevens groeien.
SQL in een webapplicatie
In een moderne webapplicatie schrijven ontwikkelaars niet altijd zelf SQL. Frameworks zoals Laravel hebben een laag (een ORM) die code omzet naar SQL. Toch blijft SQL-kennis belangrijk, voor rapportages, het opsporen van trage pagina’s en het controleren van gegevens.
Ook in no-code tools en rapportagesoftware kom je SQL tegen. Veel dashboardtools laten je een eigen query schrijven als de standaardfilters niet volstaan, en exports uit een boekhoud- of CRM-pakket zijn vaak met een paar regels SQL te combineren tot één overzicht.
Een bekend risico is SQL-injectie: een aanvaller stopt SQL-code in een formulierveld, en een slecht gebouwde applicatie voert die uit. Moderne frameworks beschermen hier standaard tegen, mits ontwikkelaars ze goed gebruiken.
SQL of NoSQL?
SQL-databases werken met vaste tabellen en relaties en bewaken dat gegevens consistent blijven. NoSQL-databases werken met flexibelere structuren en zijn gemaakt om makkelijk over veel servers te verdelen. Voor de meeste bedrijfsapplicaties, met klanten, orders, facturen en rechten, is een SQL-database de logische keuze.
Wat betekent dit voor jouw project?
Ik kijk bij een proces altijd naar wat er binnenkomt, wie ermee verder moet en welke informatie die persoon nodig heeft. Dat bepaalt welke tabellen en relaties er in de database komen. Bij SAYOOO, mijn eigen softwareproduct dat gegevens verwerkt in overzichten en rapportages, is de bouwles: begin bij de beslissing die iemand moet nemen en bepaal dan welke gegevens daarvoor nodig zijn.
Staan je gegevens verspreid over spreadsheets en losse systemen? Stuur me welke gegevens je bijhoudt, wie ermee werkt en welke vraag je er nu niet uit krijgt. Dan bepalen we samen de logische eerste stap.
Veelgestelde vragen over SQL
Wat is SQL?
SQL (Structured Query Language) is de standaardtaal om gegevens in een relationele database op te vragen, toe te voegen, te wijzigen en te verwijderen. Het wordt gebruikt in onder meer MySQL, PostgreSQL, SQL Server en Oracle.
Waar staat SQL voor?
SQL staat voor Structured Query Language. De taal is in de jaren zeventig bij IBM ontwikkeld onder de naam SEQUEL en werd in 1986 door ANSI en in 1987 door ISO gestandaardiseerd.
Is SQL moeilijk om te leren?
De basis van SQL is relatief eenvoudig te leren, omdat opdrachten als SELECT, INSERT en UPDATE op gewone Engelse zinnen lijken. Complexe query’s met veel tabellen en optimalisatie vragen meer ervaring.
Verwante termen
Database · NoSQL · Laravel · PHP · Datamigratie · Dashboard
← Terug naar de kennisbank