python vs sql

In onze trainingen leren wij onze deelnemers hoe ze Python kunnen gebruiken om data-analyses te verrichten of voorspellingen te doen. Dankzij de intuïtieve syntax, de beschikbaarheid van vele packages en een levendige community wordt Python hier de laatste jaren enorm veel voor gebruikt door data scientists in sectoren als de zorg en de overheid, of in disciplines als logistiek, HR, of marketing.

Maar Python is niet de enige taal waarin dit kan, ook SQL is een veelgebruikte taal waarmee data-bewerkingen gedaan kunnen worden. In de praktijk wordt deze taal naast Python heel vaak gebruikt. Maar wanneer gebruik je nu welke taal?

In deze blog leggen we uit:

Wat is SQL?

SQL is een relatief oude taal en heeft zich in de jaren ‘80 ontwikkeld tot wat het nu is. SQL is een taal die gebruikt wordt voor het opvragen van en bewerken van data in relationele databases.

Een relationele database (ook wel SQL database genoemd) is een database waarin data gestructureerd is opgeslagen in tabellen met gedefinieerde kolommen.

Als je data uit een SQL-database wilt halen, schrijf je een query in SQL. Stel, je hebt een tabel genaamd ‘klanten’ met de kolommen ‘naam’, ‘adres’ en ‘provincie’ en je bent alleen geïnteresseerd in alle klanten die in Zuid-Holland wonen. Je zou de data dan als volgt kunnen opvragen:

SELECT *
FROM klanten
WHERE provincie = ‘Zuid-Holland’

Je ziet hierin drie woorden in hoofdletters: SELECT, FROM en WHERE. In normaal Nederlands staat hier dat je alle kolommen (vanwege de * die na ‘SELECT’ staat) selecteert uit de tabel ‘klanten’ waar in de kolom ‘provincie’ de waarde gelijk moet zijn aan Zuid-Holland.

Naast het selecteren van data, kan je ook groeperen (middels GROUP BY), tabellen aan elkaar koppelen (middels JOIN) en berekeningen uitvoeren.

Met vertrouwen waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python en data science trainingen.


Wat zijn de verschillen en overeenkomsten tussen Python en SQL?

Python en SQL hebben veel verschillen, maar ook veel overeenkomsten. De belangrijkste overeenkomst is dat je met beide talen data kan filteren, groeperen en aan elkaar koppelen. (in Python doe je dit doorgaans met het package pandas).

Maar er zijn ook verschillen.

1. Complexe logica toepassen is makkelijker met Python

SQL is geen programmeertaal maar een ‘query language’. Het fundamentele verschil is dat je met SQL beschrijft wat de gewenste uitkomst is, terwijl je bij een programmeertaal zoals Python beschrijft welke logica er toegepast moet worden om tot deze uitkomst te komen. Concreet betekent dit dat je in Python meer mogelijkheden en flexibiliteit hebt om complexe logica toe te passen, zoals bijvoorbeeld machine learning algoritmes om voorspellingen of complexe classificaties te doen.Dit is één van de redenen om Python te leren.

2. SQL werkt alleen met SQL-databases

SQL is een taal gemaakt voor SQL-databases. De data moet dus in een SQL-tabel zitten indien je SQL gebruikt. Python werkt met allerlei databronnen, zoals bijvoorbeeld losse Excel-bestanden, csv-bestanden of XML-bestanden.

3. SQL is geschikter om grote hoeveelheden data te verwerken

SQL-code wordt uitgevoerd op de server waar ook de database zich bevindt, terwijl Python-code (standaard) wordt uitgevoerd op de computer waarop Python geïnstalleerd staat. Dit betekent dat je met SQL makkelijker analyses kan doen op grote hoeveelheden data, omdat een server doorgaans betere processors en meer werkgeheugen heeft dan je eigen laptop.

Voor simpele bewerkingen op grote hoeveelheden data is SQL geschikter

Een voorbeeld: stel je hebt informatie over alle aankopen bij een supermarkt in Nederland van de afgelopen 10 jaar. In deze supermarkt worden in heel Nederland 10.000 aankopen per dag gedaan, over een periode van 10 jaar zijn dit 36 miljoen aankopen.

Indien je dit bestand wilt openen in Python, moeten er bijna 36 miljoen rijen worden ingelezen, pas daarna kan je logica toe gaan passen. Voor een normale pc is dit al gauw teveel of het duurt heel lang om de data in te lezen. Echter, een query uitvoeren op de database zelf is in dit geval doorgaans geen probleem omdat de server en database geoptimaliseerd zijn om met dit soort hoeveelheden data te werken.

4. Python is een programmeertaal met veel meer functionaliteit dan alleen data-analyse

Indien het gaat om het analyseren en verwerken van data hebben Python en SQL veel overeenkomsten, maar Python heeft veel meer functionaliteit dan enkel voor data-analyse. Zo kan je Python ook gebruiken om gemakkelijk bestanden in te lezen, data te visualiseren, data weg te schrijven en verbindingen te maken met andere systemen, dingen die met SQL allemaal onmogelijk zijn. Python leren duurt daarom wat langer.

5. Python-code is makkelijker te beheren

Python-code leeft in losse Jupyter-notebooks of .py-bestanden. Deze code kan middels Git-repositories makkelijk beheerd en gedeeld worden. SQL-queries worden vaak opgeslagen als ‘procedures’ of ‘views’ in de database zelf en zijn daardoor lastiger te beheren via Git.

Samenvatting

PythonSQL
Python is een algemene programmeertaal, geschikt voor veel toepassingen, waardoor data-analyseSQL een ‘query language’ waarmee je databases kan benaderen en wijzigen
Omdat Python een algemene programmeertaal is, werkt het samen met elke denkbare databron mogelijkSQL kan alleen worden gebruikt voor data die is opgeslagen in SQL-tabellen
Python heeft van zichzelf veel functionaliteit en deze functionaliteit kan worden uitgebreid met packagesSQL is beperkter in functionaliteit, maar voor simpele bewerkingen erg geschikt
Python-code wordt lokaal uitgevoerd is en daardoor minder geschikt voor bewerkingen op grote hoeveelheden dataSQL-code wordt op een server uitgevoerd en is daardoor erg geschikt voor met name simpele bewerkingen op grote hoeveelheden data
Python code is makkelijk te beheren via GitSQL-code is niet te beheren via Git

Een andere interessante vergelijking: Python vs Excel: wanneer gebruik je wat?

Met vertrouwen waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python en data science trainingen.


Wanneer gebruik je SQL en wanneer gebruik je Python?

We hebben inmiddels geconstateerd dat SQL en Python veel overeenkomsten hebben, met name als het gaat om relatief simpele bewerkingen op grote hoeveelheden data. Echter, dan moet de data dus wel in een SQL tabel zitten, dat is lang niet altijd zo. Indien je later complexere dingen wilt gaan doen, zoals bijvoorbeeld machine learning, moet je dan alsnog overstappen naar Python.In de praktijk zie daarom dat SQL en Python als volgt gebruikt worden:

  • Indien de data in een SQL-tabel zit wordt SQL gebruikt voor de eerste selectie en opschoning van van data
  • Relatief simpele analyses over grote hoeveelheden data worden vaak in SQL gedaan
  • Python wordt gebruikt indien er complexere logica toegepast moet worden, statistische berekeningen gedaan moeten worden of bepaalde analyses herhaald moeten worden onder verschillende condities en/of er visualisaties van de output benodigd zijn

Samengevat: indien de data netjes in een SQL-tabel zit en je geen ingewikkelde analyses wilt doen, is SQL prima geschikt. Echter, zodra je iets meer complexiteit wilt gaan toevoegen en/of data wilt gebruiken van andere bronnen dan SQL, dan is Python veel geschikter.

Wil jij snel op stoom zijn als data scientist in Python? Krijg in twee dagen vertrouwen in het analyseren van data met Python. Schrijf je in voor onze Python training voor data science en ontwikkel je onder begeleiding van ervaren trainers succesvol verder als data scientist.

 

by: