SQL leren: Rijen toevoegen met INSERT
Nieuw in de vitrine
"Morgen liggen er appelflappen in de toonbank, en die moeten ook online." Jens veegt de bloem van zijn handen. Tot nu toe haalde je alleen data op. Nu voeg je zelf iets toe.
Een rij erbij
INSERT INTO voegt een rij toe. Eerst noem je de tabel en tussen haakjes de kolommen die je invult. Na VALUES volgen de waarden, in dezelfde volgorde.
De id hoef je niet in te vullen: een INTEGER PRIMARY KEY krijgt vanzelf het volgende nummer. Onderaan zie je de tabel na de INSERT, met de nieuwe rij in het groen.
Je kan hier niets kapotmaken: na elke query staat de database weer zoals hij was.
INSERT INTO producten (naam, categorie, prijs, voorraad) VALUES ('Appelflap', 'gebak', 2.6, 12)Verplicht, of met een standaardwaarde
Niet elke kolom mag je overslaan. Bij het maken van de tabel kreeg elke kolom regels mee. Een kolom met NOT NULL is verplicht. Een kolom met een DEFAULT krijgt een standaardwaarde als je hem weglaat.
Hieronder zie je de regels van producten. Laat je voorraad weg, dan wordt hij 0. Laat je naam weg, dan weigert SQLite de rij.
SELECT name AS kolom, type, CASE "notnull" WHEN 1 THEN 'ja' ELSE 'nee' END AS verplicht, dflt_value AS standaard FROM pragma_table_info('producten')| kolom | type | verplicht | standaard |
|---|---|---|---|
| id | INTEGER | nee | NULL |
| naam | TEXT | ja | NULL |
| categorie | TEXT | ja | NULL |
| prijs | REAL | ja | NULL |
| voorraad | INTEGER | ja | 0 |
| glutenvrij | INTEGER | ja | 0 |
| actief | INTEGER | ja | 1 |
Meerdere rijen tegelijk
Je kan in één INSERT meerdere rijen toevoegen. Zet ze achter elkaar na VALUES, gescheiden door komma's.
De kolommen die je niet noemt, krijgen hun standaardwaarde of blijven NULL. Hier krijgen de twee nieuwe klanten geen e-mail en 0 punten.
INSERT INTO klanten (naam, gemeente) VALUES
('Hanne Smets', 'Leuven'),
('Ruben Vos', 'Herent')Probeer het zelf
Zet de Kerstbrood in de webshop, categorie seizoen, aan 9,50 euro, met 8 stuks in voorraad.
Klaar voor meer?
De volledige les heeft 7 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les