Hallo wereld,
Vandaag ga ik jullie een beetje SQL leren. SQL staat voor Structured Query Language, en is een programmeertaal om met relationele databases te werken. Met SQL kun je, zoals de naam al suggereert, queries doen, ofwel gegevens uit je database opvragen, maar je kunt er ook data mee invoeren en wijzigen. Meer info over SQL kun je hier vinden op Computerworld.
Op Youtube heb ik een video over SQL bestudeerd van Joey Blue. Als je wilt kun je deze video bekijken, of een van de vele andere video’s die te vinden zijn op Youtube. Maar in dit bericht ga ik de basics samenvatten en uitleggen op mijn eigen manier. Mocht het niet duidelijk zijn, bekijk dan zeker eens de video en gebruik dit bericht als intro, samenvatting en aanvulling.
Wat ga ik behandelen?
- Microsoft SQL Server Management Studio
- Gegevens invoeren
- Gegevens opvragen
- Gegevens wijzigen
- Relationele database
Microsoft SQL Server Management Studio
In de video wordt gebruikt gemaakt van Microsoft SQL Server Management Studio (SSMS). Als je wilt oefenen dan is het wel handig om deze te installeren, maar je kan ook gewoon doorlezen en oefenen op de sites waar ik later naar zal verwijzen. SSMS kun je hier gratis downloaden.
In SSMS kun je databases aanmaken en bewerken met query’s. Na het openen van het programma begin je door op connect te klikken om verbinding te maken met een server. Vervolgens maak je een nieuwe database aan door op Databases en vervolgens New Query te klikken. Vervolgens maak je in het geopende scherm een database aan met de opdracht CREATE DATABASE {naam van je database}. Run vervolgens je query door op Execute te klikken of op F5 te drukken. De syntax van SQL is niet hoofdletter gevoelig. Wel is er min of meer een conventie om hoofdletters te gebruiken voor de sleutelwoorden.
Gegevens invoeren
Gegevens invoeren doe je met behulp van INSERT INTO {database} (kolom 1, …. kolom n) VALUES (waard 1, … waarde n). Hierbij is het niet noodzakelijk om voor alle kolommen gegevens in te voeren, selecteer gewoon de kolommen waar je waarden voor wilt invoeren. Bij het invoeren van de kolom namen zul je gebruik moeten maken van vierkante haakjes in het geval dat deze spaties bevatten (bijv. [favoriete blogger]). Bij het invoeren van tekstwaarden moet je aanhalingstekens gebruiken (bijv. ‘Samson’).
Gegevens opvragen
Dit is natuurlijk het meest interessante voor Data Science. Door gebruik te maken van de juiste filters kun je gemakkelijk heel specifieke informatie uit je database halen. Overigens hoeft dit niet per se met een programma als SSMS, maar is het ook mogelijk (en af en toe noodzakelijk) om deze SQL query’s met Python te doen om te communiceren met een externe database. Hiervoor zijn natuurlijk wel wat libraries nodig. Op Kaggle leer je o.a. hoe je dit kan doen.
Hoe dan ook, je doet dit met gebruik van SELECT FROM WHERE. Na SELECT geef je aan welke kolommen je wil selecteren, na FROM geef je de database aan en na WHERE geef je de gewenste filters aan. Stel je bijvoorbeeld voor dat je een database genaamd ‘films’ hebt met ‘titel’, ‘regisseur’ en ‘jaar van publicatie’ als kolommen. Je wil de namen van de films hebben die zijn gepubliceerd in 2018. Dan doe je dat met de query: SELECT titel FROM films WHERE [jaar van publicatie]=2018. Simpel, nietwaar?
Je kunt je query’s echter een stuk specifieker maken dan dat. Wil je bijvoorbeeld alleen de titels van Steven Spielberg? Dan pas je de query aan naar SELECT titel FROM films WHERE [jaar van publicatie]=2018 AND regisseur=’Steven Spielberg’. En zo zijn er nog veel meer mogelijkheden. Meer dan ik in dit bericht kan behandelen.
Gegevens wijzigen
Hiervoor gebruik je de sleutelwoorden UPDATE en SET. Wil je bijvoorbeeld alle waarden voor [favoriete blogger] in de tabel van Dataridders corrigeren naar ‘Samson’ dan doe je dat door middel van: UPDATE Dataridders SET [favoriete blogger]=’Samson’. Je kunt ook een filter toevoegen aan je opdracht. Wil je bijvoorbeeld alleen de waarden voor [favoriete blogger] corrigeren naar ‘Samson’ voor de Dataridders die Nederlands als moedertaal hebben dan zou je dat kunnen doen met de opdracht: UPDATE Dataridders SET [favoriete blogger]=’Samson’ WHERE moedertaal=’Nederlands’.
Relationele database
Een relationele database is een database waarin je relaties kunt definiëren tussen kolommen van verschillende databases. Je kan bijvoorbeeld er voor zorgen dat je klantenindex kolom in je bestellingstabel gelinkt wordt aan de klantenindex kolom van je klantendatabase. Zo kun je voorkomen dat er voor een bestelling klantenindices gebruikt worden die niet in de klantendatabase staan. In SMSS kun je dit doen met behulp van Foreign keys. Ook dit wordt behandeld in de video.
En dat zijn de basics. Wil je meer leren, bekijk dan zeker eens de video, of een van de andere vele video’s op Youtube, en doe vooral ook eens wat opgaves op SQLBolt. Dat is alles voor nu.
Tot de volgende keer!