sql varianten soorten verschillen in syntax client licenties

Als je je verdiept in SQL kom je er wellicht achter dat er verschillende varianten zijn, bijvoorbeeld MySQL, PostgreSQL en SQL Server. Dit zijn allemaal relationele databases gebaseerd op de SQL-standaard, maar toch zijn er verschillen. In deze blog leggen we uit wat deze verschillen zijn.

Op welke aspecten verschillen SQL-varianten?

Wanneer er wordt gesproken over een 'SQL variant' doelt men vaak een compleet database management systeem (DBMS) zoals PostgreSQL of SQL Server. In de rest van deze blog gebruiken we 'database' als synoniem voor 'DBMS'. Elke DBMS heeft zijn eigen variant qua functionaliteit en qua syntax. De verschillen kunnen als volgt zijn:

  • Functionaliteit: de performance kan verschillen, datatypes kunnen anders worden gedefiniëerd en functies kunnen verschillend werken.
  • Licentiemodel: sommige databases zijn open source, andere vereisen een licentie.
  • Verschillen in taal en syntax: dezelfde functionaliteit kan op een andere manier worden aangeroepen. Zo selecteer je de eerste 5 rijen van een tabel met SQL Server via SELECT TOP 5 * FROM ..., maar doe je hetzelfde bij bij MySQL met SELECT * FROM LIMIT 5. Verschillende talen worden ook wel SQL dialecten genoemd.
  • Clients: het verschilt per database welke clients er gebruikt kunnen worden.

Welke SQL-varianten zijn er?

De vier meestgebruikte SQL-varianten zijn:

  1. MySQL: een veel gebruikt open-source database managementsysteem. Het wordt ontwikkeld door Oracle.
  2. PostgreSQL (ook wel 'postgres'): een open-source database management dat grotendeels vanuit de community wordt ontwikkeld. PostgreSQL staat bekend om de grote verscheidenheid aan features en ondersteuning van een grote verscheidenheid aan datatypes.
  3. Microsoft SQL Server: vereist een licentie en is ontiwkkeld door Microsoft. Het sterkte punt van SQL Server is met name de integratie met andere Microsoft tooling voor het laden en visualiseren van data. Daarom wordt dit veel gebruikt door bedrijven die ook andere tooling van Microsoft gebruiken.
  4. Oracle: een RDMS van Oracle waarvoor eveneens een licentie moet worden afgenomen. Wordt met name in grote bedrijven gebruikt waar betrouwbaarheid en snelheid belangrijk zijn.

De verschillen tussen de verschillende varianten zijn klein en in bijna alle gevallen zal elke variant voldoen. Het grootste verschil is het licentiemodel: open-source of betaald. Grote bedrijven kiezen vaker voor een licentiemodel kiezen om zo verzekerd te zijn van support.

PostgreSQL is de laatste jaren de populairste open-source variant vanwege de grote verscheidenheid aan features. Eén van die features is de uitgebreide ondersteuning voor het JSON-bestandsformaat. Dankzij deze ondersteuning is PostgreSQL een goed alternatief voor populaire NoSQL-databases zoals MongoDb, terwijl het ook de voordelen biedt van relationele databases.

Zie ook: PostgreSQL vs MySQL: verschillen & overeenkomsten

Leren werken met SQL voor data analayse? Na onze 2-daagse SQL cursus kun je volledig zelfstandig werken met SQL.

Verschillen in taal en syntax

Op het gebied van taal en syntax moet er onderscheid gemaakt worden tussen de 'standaard' SQL-syntax en de procedurele taal. Een procedurele taal is een uitbreiding op de standaard SQL-syntax waarmee zogenaamde stored procedures kunnen worden geschreven. Middels stored procedures kan in een script data worden bewerkt en verwerkt. Een voorbeeld is data uit een 'ruwe' tabel halen, transformeren en opschonen en daarna opslaan in een nieuwe tabel. Per variant kan de taal verschillen:

SQL-variantProcedurele taal
MySQLMySQL SPL
PostgreSQLPL/pgSQL
SQL ServerT-SQL
OraclePL/SQL

MySQL gebruikt MySQL SPL dat gebaseerd is op de SQL-standaard. De andere DBMS-varianten gebruiken eigen talen die niet gespecificeerd zijn in de SQL-standaard.
Zo gebruikt PostgreSQL PL/pgSQL, een taal die nauw verwant is met Oracle. Hierdoor zullen stored procedures in PostgreSQL en Oracle veel op elkaar lijken. In SQL Server wordt een eigen variant gebruikt, T-SQL. T-SQL is laagdrempeler en simpeler dan PL/SQL maar ook minder uitgebreid.

Zoals gezegd kan ook de syntax voor queries verschillen. Dit zijn doorgaans kleine verschillen. Enkele voorbeelden voor SQL Server en Postgres zijn in de tabel hieronder aangegeven:

Gewenste outputPostgresSQL Server
Selecteer de eerste n rijenSELECT * FROM table LIMIT nSELECT TOP(n) FROM table
Verkrijg huidige datumSELECT CURRENT_DATE()SELECT GETDATE()
Vervang waarde indien NULLSELECT COALESECE(column, 'Geen waarde bekend')SELECT ISNULL(column, 'Geen waarde bekend') FROM table

Verschillen in clients

Als gebruiker kan je verbinden met een database via een database client. Met open source databases zoals MySQL en PostgreSQL kan je in principe via elke client verbinden, zoals bijvoorbeeld HeidiSQL of DBeaver. Bij Oracle en SQL Server is dit niet het geval. Desalniettemin hebben alle varianten, ook de open-source varianten, een tool die het beste werkt omdat deze geoptimaliseerd is voor de betreffende database.

  1. MySQL: wordt meestal gebruikt met MySQL Workbench.
  2. PostgreSQL: wordt meestal gebruikt met pgAdmin.
  3. SQL Server: werkt het beste in combinatie met de applicatie Microsoft SQL Server. Deze applicatie biedt ook integratie met andere Microsoft tools.
  4. Oracle: werkt het beste i.c.m. Oracle SQL Developer.

Ook hierbij geldt dat de clients min of meer allemaal hetzelfde doen en dat de verschillen klein zijn. Het is echter wel een voordeel dat je bij MySQL en PostgreSQL niet gebonden bent aan één client.

Conclusie

De functionaliteit van de verschillende databases is nagenoeg hetzelfde. De verschillen zitten vooral in syntax, licentiemodel, integratie met andere tooling en beschikbare clients. Als analist of gebruiker maakt dit doorgaans niet uit.

Mocht je op het punt staan een database te kiezen en heb je geen voorkeur voor SQL Server of Oracle, dan is Postgres de beste keuze. Het is zeer populair omdat het open source is (en daarmee gratis) en zeer veel functionaliteit biedt waardoor je nooit tegen beperkingen aanloopt.

Bezig om SQL onder de knie te krijgen?

Wellicht ben je bezig om SQL beter te leren. Wij schreven de volgende handige artikelen om je op weg te helpen:

Wil je nog veel meer leren over SQL? Bekijk dan onze SQL cursus of download onderstaande opleidingsbrochure. In onze SQL cursus wisselen theorie en praktijkoefening elkaar steeds af. Nadat je deze training hebt gevolgd kun je zelfstandig met SQL werken. Je kunt ook altijd even contact opnemen via info@datasciencepartners.nl of 020 - 24 43 146 als je een vraag hebt.

by: