SQL-query's: de basis
Wat is een query?
Een SQL query is een opdracht aan de database, geschreven in SQL. Query is Engels voor vraag of zoekopdracht. Je vraagt de database om gegevens te tonen, toe te voegen, aan te passen of te verwijderen.
Elke query werkt op tabellen en hun rijen en kolommen. Daarom is het handig om eerst te begrijpen hoe die zijn opgebouwd, zoals beschreven in het artikel over tabellen, rijen en kolommen. Meer over de taal zelf lees je in het artikel over wat SQL is.
De vier basisopdrachten
Vrijwel alle werk met gegevens valt in vier categorieën, vaak aangeduid als CRUD: aanmaken, lezen, bijwerken en verwijderen.
- SELECT leest gegevens uit een tabel. Met
SELECT naam FROM klanten;krijg je alle namen uit de tabel klanten. - INSERT voegt een nieuwe rij toe, bijvoorbeeld
INSERT INTO klanten (naam) VALUES ('Sanne');. - UPDATE wijzigt bestaande rijen, bijvoorbeeld
UPDATE klanten SET plaats = 'Utrecht' WHERE naam = 'Sanne';. - DELETE verwijdert rijen, bijvoorbeeld
DELETE FROM klanten WHERE naam = 'Sanne';.
Deze voorbeelden zijn bedoeld om het principe te laten zien. Ze zijn niet volledig en de exacte schrijfwijze kan per databasesoftware iets verschillen.
Waarom de WHERE-clausule zo belangrijk is
Met WHERE geef je aan voor welke rijen een opdracht geldt. Ontbreekt die clausule bij een SELECT, dan krijg je alle rijen van de tabel terug. Bij UPDATE of DELETE worden dan alle rijen aangepast of verwijderd.
Een vergeten WHERE is een veelvoorkomende fout, en die kan veel gegevens in één keer beschadigen. Daarom is het verstandig om een wijziging eerst op een kopie van de database te proberen en vooraf een back-up te maken. Een overzicht van wat een database bevat en hoe je die beschermt, vind je op de kennisbankpagina over databases.
Veelgestelde vragen
Kan ik zomaar een SQL-query uitvoeren op mijn database?
Technisch kan dat, maar wees voorzichtig. Een SELECT leest alleen gegevens, maar UPDATE en DELETE veranderen of verwijderen ze direct. Voer zulke opdrachten alleen uit als je zeker weet wat ze doen en je een recente back-up hebt.
Waarom bevat een SELECT-query vaak een WHERE?
Met WHERE beperk je de rijen waarop de opdracht werkt. Zonder WHERE krijg je bij een SELECT alle rijen van de tabel terug, en bij UPDATE of DELETE worden alle rijen geraakt. Met WHERE geef je precies aan welke gegevens je bedoelt.