Skip to content
ICT Fusion Knowledgebase

SQL

Om data uit je database te halen, data in je database te stoppen, of om je databases zelf te beheren is er een taal die je kan gebruiken: SQL.

Belangrijke details:

  • SQL staat voor Structured Query Language.
  • Het is een taal die bedacht is als standaard voor het beheren van relationele databases.
    • Het geeft jou de mogelijkheid om je database in te richten met verschillende tabellen (en deze tabellen met elkaar te verbinden!).
    • Het zorgt ervoor dat je data op een gestructureerde manier kan worden opgeslagen.
    • Je kan op een krachtige manier data verkrijgen uit je database met allerlei filters en condities.
  • SQL is ‘high level’, de syntax is over het algemeen goed te lezen en te begrijpen.

SQL commando

De taal bestaat uit verschillende commando’s die je kan ‘afvuren’ op je SQL server. Vervolgens zal je SQL server jouw commando uitvoeren en jou de resultaten teruggeven.

Een voorbeeld van een SQL commando is:

SELECT voornaam, achternaam FROM studenten WHERE woonplaats = 'Amsterdam';

Wat dit commando doet is:

  • Het vraagt de SQL server om de data uit de tabel ‘studenten’ te halen.
  • Het vraagt de SQL server om alleen de kolommen ‘voornaam’ en ‘achternaam’ te returnen.
  • Het vraagt de SQL server om alleen de rijen te returnen waar de woonplaats ‘Amsterdam’ is.

De output van dit commando zou dan kunnen zijn:

voornaam achternaam
Jan Jansen
Piet Janssen
Kees Klaassen

Database beheren

SQL wordt niet alleen gebruikt om data te verkrijgen uit je database, maar ook om je database zelf te beheren. Zo kan je databases aanmaken, tabellen in deze databases aanmaken maar ook gebruikers aanmaken en rechten toekennen. Om databases aan te maken of je gebruikers te beheren is het aangeraden om een tool te gebruiken met een grafische interface.

Wil je met SQL een database aanmaken dan zou je dat als volgt kunnen doen:

-- Maak de database aan met de naam my_database
CREATE DATABASE my_database;

(In SQL is een commentaar geschreven tussen -- of /* */)

Wil je vervolgens binnen deze database een tabel aanmaken dan zou je dat als volgt kunnen doen:

-- Gebruik de database my_database
USE my_database;

-- Maak de tabel aan met de naam studenten
CREATE TABLE studenten (
    voornaam VARCHAR(255) NOT NULL,
    achternaam VARCHAR(255) NOT NULL,
    woonplaats VARCHAR(255) NOT NULL
);

CRUD

Een veel gebruikt concept in SQL is het CRUD model. CRUD staat voor Create, Read, Update en Delete, en heeft betrekking op de basis operaties die je kan uitvoeren op data in een of meerdere tabellen.

  • Create: Maak een nieuwe rij aan in een tabel.
  • Read: Lees een rij uit een tabel.
  • Update: Wijzig een rij in een tabel.
  • Delete: Verwijder een rij uit een tabel.

Voorbeelden van CRUD operaties in SQL:

CRUD SQL commando
Create INSERT INTO studenten (voornaam, achternaam, woonplaats) VALUES ('Jan', 'Jansen', 'Amsterdam');
Read SELECT * FROM studenten;
Update UPDATE studenten SET woonplaats = 'Utrecht' WHERE voornaam = 'Jan';
Delete DELETE FROM studenten WHERE voornaam = 'Jan';

Create

In een tabel zijn de kolommen (bijvoorbeeld voornaam, achternaam, woonplaats) de verschillende velden die een tabel kent. Bij het Create commando geef je invulling aan deze velden, voor één rij.

INSERT INTO studenten (voornaam, achternaam, woonplaats) VALUES ('Jan', 'Jansen', 'Amsterdam');
INSERT INTO studenten (voornaam, achternaam, woonplaats) VALUES ('Piet', 'Pietersen', 'Utrecht');
INSERT INTO studenten (voornaam, achternaam, woonplaats) VALUES ('Kees', 'Klaassen', 'Den Haag');

Deze 3 INSERT INTO commando’s zullen 3 nieuwe rijen aanmaken in de tabel studenten. Waardoor je tabel er als volgt zou kunnen uitzien:

voornaam achternaam woonplaats
Jan Jansen Amsterdam
Piet Pietersen Utrecht
Kees Klaassen Den Haag

Read

Om data uit een tabel te halen, gebruik je het SELECT commando.

SELECT * FROM studenten;

Aan dit commando kan je voorwaarden meegeven om specifieke informatie op te kunnen halen.

Voorbeeld: Alle data uit de tabel studenten halen waar de woonplaats ‘Amsterdam’ is.

SELECT * FROM studenten WHERE woonplaats = 'Amsterdam';

Voorbeeld: Alle data uit de tabel studenten halen waar de woonplaats ‘Amsterdam’ is en de voornaam ‘Jan’ is.

SELECT * FROM studenten WHERE woonplaats = 'Amsterdam' AND voornaam = 'Jan';

Voorbeeld: Alle data uit de tabel studenten halen waar de woonplaats ‘Amsterdam’ is of de woonplaats ‘Utrecht’ is.

SELECT * FROM studenten WHERE woonplaats = 'Amsterdam' OR woonplaats = 'Utrecht';

Voorbeeld: Alle voornamen uit de tabel studenten waarvan de achternaam begint met de letter ‘J’ op volgorde van woonplaats.

SELECT voornaam FROM studenten WHERE achternaam LIKE 'J%' ORDER BY woonplaats;

Update

Om data in een tabel te wijzigen, gebruik je het UPDATE commando.

UPDATE studenten SET woonplaats = 'Utrecht';

Ook hier kan je voorwaarden meegeven om specifieke informatie op te kunnen wijzigen.

Voorbeeld: Wijzig de woonplaats van alle studenten naar ‘Amsterdam’ waarvan de woonplaats ‘Weesp’ is.

UPDATE studenten SET woonplaats = 'Amsterdam' WHERE woonplaats = 'Weesp';

Delete

Om data uit een tabel te verwijderen, gebruik je het DELETE commando.

DELETE FROM studenten;

Zonder voorwaarden zal het DELETE commando alle rijen uit de tabel studenten verwijderen. Om dat te voorkomen kan je ook hier voorwaarden meegeven.

Voorbeeld: Verwijder alle studenten waarvan de woonplaats ‘Beverwijk’ is.

DELETE FROM studenten WHERE woonplaats = 'Beverwijk';

JOIN

We werken met relationele databases, dit betekent dat we vaak met meerdere tabellen werken die aan elkaar gerelateerd zijn. Je kan bijvoorbeeld denken aan een tabel voor studenten en een tabel met cijfers.

Om deze informatie bij elkaar te brengen maak je gebrueik van een JOIN commando. Bijvoorbeeld:

SELECT studenten.voornaam, studenten.achternaam, studenten.woonplaats, cijfers.cijfer FROM studenten JOIN cijfers ON studenten.id = cijfers.student_id;

SQL kent verschillende soorten JOIN commando’s: - INNER JOIN: Alleen de rijen die in beide tabellen aanwezig zijn. - LEFT JOIN: Alle rijen uit de linker tabel, en de rijen uit de rechter tabel die voldoen aan de voorwaarde. - RIGHT JOIN: Alle rijen uit de rechter tabel, en de rijen uit de linker tabel die voldoen aan de voorwaarde. - FULL JOIN: Alle rijen uit beide tabellen, en de rijen uit de linker tabel die voldoen aan de voorwaarde. - CROSS JOIN: Alle mogelijke combinaties van rijen uit beide tabellen.

Meer SQL

SQL is nog veel meer dan dat wat hierboven is beschreven. Om daarmee aan de slag te gaan kan je denken aan: