Ga naar hoofdinhoud
SQL
Data Science

Is SQL een programmeertaal?

Wordt SQL beschouwd als een programmeertaal? We bekijken de verschillende factoren en waar de taal voor wordt gebruikt.
Sejal Jaiswal's photo
Sejal Jaiswal
Bijgewerkt · 11 min lezen

Verken met AI

ChatGPTClaudePerplexity

Maak je gratis account aan

Oefen en volg je voortgang.

Ga Verder Met Google
Door verder te gaan accepteer je onze Gebruiksvoorwaarden, ons Privacybeleid en dat je gegevens worden opgeslagen in de VS.

Als je in een data-intensieve sector werkt, heb je ongetwijfeld van databases gehoord. Een veelgebruikte manier om toegang te krijgen tot data die in een database is opgeslagen, is via SQL. In dit artikel leer je meer over SQL. In plaats van meteen te duiken in de syntaxis en termen die in SQL worden gebruikt, kijken we eerst naar een paar kernbegrippen uit de informatica die ons helpen de vraag te beantwoorden: is SQL een programmeertaal?

Wat is SQL?

Laten we beginnen met het definiëren van wat een database is. Simpel gezegd is een database een opslagsysteem voor je gestructureerde data. Daarnaast fungeert een databasebeheersysteem (DBMS) als interface tussen de database en de eindgebruikers of programma's. Je kunt meer leren over deze relatie in DataCamp's Database Design-cursus.

Het meest gangbare type DBMS is een relationeel databasebeheersysteem (RDBMS), waarin we gestructureerde data opslaan, oftewel data met relaties tussen entiteiten en variabelen. Deze entiteiten en variabelen zijn georganiseerd als een verzameling tabellen met kolommen en rijen. 

De data in een RDBMS wordt opgeslagen in een databaseobject dat tabel heet. Een database bevat vaak meerdere tabellen. Elke tabel heeft een unieke naam en bevat een verzameling gerelateerde gegevens, gestructureerd als rijen en kolommen. De kolommen in een tabel heten velden en bevatten waarden voor een specifieke eigenschap van een tabel. Elke rij in een tabel heet een record. 

SQL, uitgesproken als “S-Q-L” of “sequel”, staat voor Structured Query Language. SQL wordt gebruikt in programmeren en is ontworpen voor het beheren van data die is opgeslagen in een RDBMS met behulp van SQL-queries. 

Een query is niets anders dan een instructie die uit verschillende SQL-commando's bestaat en samen een specifieke taak uitvoert om je data te benaderen, beheren, wijzigen, updaten, controleren en organiseren. Deze definitie van een query lijkt sterk op een 'computerprogramma'; betekent dit dat SQL een programmeertaal is? 

Laten we in de volgende sectie beter begrijpen wat een programmeertaal betekent.

Wat is een programmeertaal?

Een programmeertaal bestaat uit een vooraf gedefinieerde woordenschat en grammaticaregels. Met deze taal kun je een computer of computertoestel specifieke taken laten uitvoeren. 

Er zijn veel verschillende soorten programmeertalen, elk met hun eigen kenmerken en doel. Over het algemeen kun je ze echter opdelen in twee groepen: laag-niveau en hoog-niveau programmeertalen. 

Programmeertalen die dichter bij machinetaal of binair (enen en nullen) liggen, worden laag-niveautalen genoemd. 

Laag-niveautalen zijn voor mensen vaak moeilijk te lezen omdat ze zijn ingericht om instructies te schrijven zoals een machine 'denkt'. Toch zijn ze beter te begrijpen dan zuivere enen en nullen. 

Waarom zou je dan een laag-niveautaal gebruiken? Omdat ze snel zijn! En ze geven de programmeur preciezere controle over hoe de computerhardware functioneert. 

Aan de andere kant liggen hoog-niveautalen dichter bij hoe mensen communiceren. Ze gebruiken woorden in hun instructies die lijken op de taal die we dagelijks gebruiken, waardoor ze eenvoudiger te programmeren en te onderhouden zijn. Het nadeel is dat het meer tijd kost om ze te vertalen naar machinetaal die de computer begrijpt.

Maar naarmate computers krachtiger worden, is het verschil in performance tussen laag- en hoog-niveautalen vaak slechts milliseconden. Daarom vragen de meeste programmeerbanen tegenwoordig om vaardigheden in hoog-niveautalen.

Wat is Turing-volledigheid?

Om de kracht van een programmeertaal te meten, gebruiken informatici vaak het concept Turing-volledigheid. Het is genoemd naar Alan Turing, een informaticus die in 1936 de Turingmachine voorstelde. Die werd de basis voor theorieën over rekenen en computers. 

De Turingmachine was een apparaat dat symbolen op ponsband drukte op een manier die leek op een persoon die logische instructies volgt.

Programmeertalen zijn formele regelsystemen die data benaderen en wijzigen. Als de regels Turing's hypothetische rekenmachine kunnen simuleren, dan zijn de regels "Turing-volledig". Een Turing-volledig systeem kan wiskundig worden bewezen elke mogelijke berekening uit te voeren.

We raden je ten zeerste aan om deze video van Computerphile te kijken voor meer over Turingmachines en hun vervolgvideo's over het concept Turing-volledigheid.

Algemene programmeertaal versus domeinspecifieke taal

SQL heeft een vooraf gedefinieerde set trefwoorden en volgt een strikte syntaxis. Om met programmeren in SQL te beginnen, bekijk je DataCamp's Introduction to SQL-cursus, waarin we starten met het selecteren en filteren van records en velden en vervolgens doorgaan met aggregatiefuncties, sorteren en groeperen.

Gegeven de definitie van een programmeertaal als een taal met een bepaalde woordenschat en specifieke syntaxis, kwalificeert SQL zeker als programmeertaal. Het is echter geen General Purpose Language (GPL), maar juist een Domain-Specific Language (DSL). 

Een domeinspecifieke taal is een computertaal die specifiek is gemaakt om problemen binnen een bepaald domein op te lossen en niet bedoeld is om problemen daarbuiten op te lossen. 

Ze worden ontworpen en geïmplementeerd met specifieke doelen. SQL is bijvoorbeeld specifiek gebouwd om met databases te werken, om databases te bevragen en met de data erin te werken. Je kunt niet een volledige applicatie bouwen met alleen SQL. 

Een ander voorbeeld van een DSL is Cascading Style Sheets, beter bekend als CSS, dat wordt gebruikt voor het stylen van HTML op websites.

DSL staat tegenover een General Purpose Language (GPL), die breed toepasbaar is over domeinen heen. Ze zijn ontworpen zodat je elk type programma met elke gewenste logica kunt schrijven. 

Met een GPL kun je allerlei soorten applicaties bouwen, waaronder desktop-, mobiele of webapplicaties. Enkele van de meest gebruikte GPL's zijn Python, C++, Ruby, Java en JavaScript.

Grofweg zijn DSL's minder krachtig dan GPL's. Maar dat heeft ook een voordeel. Door het smalle toepassingsdomein is SQL relatief gemakkelijker te leren dan de meeste algemene programmeertalen. 

We raden je aan om DataCamp's SQL Fundamentals-track te volgen, waarin we je in 5 cursussen en slechts 21 uur van beginner naar pro in SQL brengen.

Dus, is SQL een programmeertaal?

Turing-volledigheid, zoals we eerder bespraken, is een indicatie van de kracht van een programmeertaal. Hoe krachtiger een taal, hoe complexere berekeningen die kan uitvoeren. Met de introductie van common table expressions (CTE's) en windowfuncties in SQL kunnen we recursieve en hiërarchische berekeningen uitvoeren met SQL, wat het nog krachtiger maakt en het kwalificeert als Turing-volledig.

Het duurde echter lang voordat de SQL-standaard de functies voor hiërarchische en recursieve queries toevoegde. Daardoor kwalificeren sommige oudere, traditionele RDBMS'en mogelijk niet als Turing-volledig.

We hebben eerder besproken hoe een algemene programmeertaal verschilt van een domeinspecifieke programmeertaal. Wanneer mensen “programmeer­taal” zeggen, bedoelen ze vaak “algemene programmeertaal”, wat soms verwarrend kan zijn. 

Dus als het gaat om de juiste definitie van een programmeertaal, geldt: SQL is een domeinspecifieke programmeertaal die Turing-volledig is. Daarmee kwalificeert SQL als programmeertaal.

Voor wie de basis van SQL al kent en een stap verder wil gaan met windowfuncties: bekijk DataCamp's interactieve cursus PostgreSQl Summary Stats and Window Functions. Je leert queries maken voor analytics- en data-engineering­doeleinden met windowfuncties, het geheime wapen van SQL!

De verschillende soorten SQL

Je hebt vast gehoord over de verschillende typen of dialecten van SQL: T-SQL, PostgreSQL, MySQL, enzovoort. Maar wat zijn die verschillende typen SQL en waarom bestaan ze? Laten we kort kijken naar de geschiedenis van SQL. 

Edgar Frank Codd, een Britse informaticus bij IBM, publiceerde in 1970 een paper genaamd “A Relational Model of Data for Large Shared Data Banks”. Daarin introduceerde hij het relationele model voor databasemanagement, dat sindsdien de theoretische basis vormt voor relationele databases en relationele databasebeheersystemen. 

Hierna werden in de late jaren tachtig pogingen ondernomen om een officiële SQL-standaard te creëren. 

SQL werd in 1986 een standaard van het American National Standards Institute (ANSI) en in 1987 van de International Organization for Standardization (ISO). De SQL-standaard is sinds de jaren tachtig meerdere keren herzien, hoewel de kernfuncties van de standaard-SQL sinds 1992 stabiel zijn.

Toch bleven er nieuwe varianten verschijnen omdat databasebouwers bij verschillende bedrijven nieuwe problemen moesten oplossen of om bestaande, niet in de SQL-standaard geadresseerde problemen heen moesten werken. Dat verklaart waarom meerdere SQL-dialecten ontstonden en vandaag de dag nog naast elkaar bestaan.

Tegenwoordig bestaat er maar één SQL-taal, maar de verschillende databasebeheersystemen hebben de oorspronkelijke SQL-standaard uitgebreid met eigen functionaliteit of de syntaxis aangepast aan hun manier van werken. Zo ontstond een reeks SQL-dialecten. 

Je kunt meer lezen over deze verschillende dialecten in ons blogartikel met de veelzeggende titel 'SQL Server, PostgreSQL, MySQL... wat is het verschil? Waar begin ik?'

Met welk SQL-dialect begin je?

Wij raden je aan te beginnen met PostgreSQL. 

PostgreSQL is een krachtig, open-source, object-relationeel databasesysteem dat de SQL-taal gebruikt en uitbreidt.  Het heeft ook diverse functies om de meest complexe dataloads veilig op te slaan en op te schalen.

Dit ligt het dichtst bij standaard-SQL en is een veelgebruikt SQL-dialect. Beginnen met PostgreSQL geeft je het meest flexibele startpunt om later aan andere SQL-dialecten te wennen en je vaardigheden te vertalen naar andere RDBMS'en. 

DataCamp's cursus Functions for Manipulating Data in PostgreSQL is een geweldige interactieve cursus op gemiddeld niveau om je de goede kant op te sturen.

SQL en procedurele talen

We weten dus dat SQL geen algemene programmeertaal is. Je kunt SQL echter combineren met procedurele talen om gedrag te benaderen dat op een GPL lijkt. Op die manier is het technisch mogelijk om SQL te gebruiken in een ander domein dan waarvoor het bedoeld is.

Procedurele talen zijn programmeertalen waarin je specifiek functies, voorwaardelijke statements en variabelen gebruikt om programma's te schrijven die door computers worden herkend om een bepaald computationeel resultaat te bereiken.

Alle databasebeheersystemen (DBMS'en) accepteren één of meer dialecten van procedurele talen. Enkele voorbeelden: 

Procedural Language for SQL (PL/SQL)

Dit is een extensie voor SQL die is gemaakt door Oracle Corporation. Net als algemene programmeertalen ondersteunt PL/SQL condities en lussen. Met PL/SQL kun je ook constanten, variabelen, variabeletype, triggers, procedures en functies declareren.

Procedural Language/PostgreSQL (PL/pgSQL) 

Dit is een procedurele taal die wordt ondersteund door het open-source, object-relationele databasebeheersysteem PostgreSQL. Het lijkt sterk op Oracle's PL/SQL zoals hierboven beschreven en bevat elementen als lussen en condities. Het staat door de gebruiker gedefinieerde functies toe en ook operatoren kunnen worden overgeërfd. 

Transact-SQL (T-SQL)

Dit is een programmeerextensie van Sybase en Microsoft die het declareren van lokale variabelen mogelijk maakt. Ook zijn er wijzigingen aangebracht in de traditionele DELETE- en UPDATE-statements uit de SQL-standaard. Het omvat transactieregeling en afhandeling van uitzonderingen en fouten. Het wordt gebruikt in Microsoft SQL Server, een veelgebruikte database.

Door gebruik te maken van dit soort extensies kan SQL vergelijkbaar presteren met een GPL, waardoor het een nog krachtigere en belangrijkere vaardigheid wordt om te leren!

Beginnen met SQL.

Hopelijk hebben we je overtuigd dat SQL niet zomaar een programmeertaal is, maar juist een krachtige programmeertaal die je helpt het maximale uit je data te halen! 

Datacamp is een uitstekend platform om online data science en analytics te leren. We hebben volop hoogwaardige online cursussen die je helpen SQL en de nuances ervan te begrijpen. 

Onze Introduction to SQL Server is zo'n interactieve cursus waarin je de kans krijgt je kennis te testen en je zelfvertrouwen op te bouwen door direct te oefenen met wat je leert. Je werkt met een digitale media­database om de verkoop van verschillende artiesten en tracks te bekijken, met Eurovision-datasets, en je bekijkt trends in stroomuitval in de VS om verschillende datatype en scenario's te verkennen.

Veel leerplezier!

Onderwerpen
SQL
Data Science

Cursussen voor SQL

Cursus

Gegevens manipuleren in SQL

4 uur
338.9K
Beheers complexe SQL-query's om uiteenlopende data science-vragen te beantwoorden en robuuste datasets voor analyse in PostgreSQL voor te bereiden.
Bekijk detailsStart Cursus

Maak je gratis account aan

Oefen en volg je voortgang.

Ga Verder Met Google
Door verder te gaan accepteer je onze Gebruiksvoorwaarden, ons Privacybeleid en dat je gegevens worden opgeslagen in de VS.
Meer bekijken
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer bekijken