INSERT INTO
Op deze pagina:
Met INSERT INTO kan je gegevens toevoegen in een database.INSERT INTO algemene vorm:
-- specifiek: zowel kolommen als waarden opgeven
INSERT INTO tabelnaam (kolom1, kolom2, kolom3, ...)
VALUES (waarde1, waarde2, waarde3, ...);
/*
Als je alle kolommen gaat vullen,
dan mag je de kolommen weglaten
de waarden moeten in de volgorde van
de kolommen worden opgegeven
Automatisch gegenereerde ID-velden hoef
je natuurlijk niet op te geven
*/
INSERT INTO tabelnaam
VALUES (waarde1, waarde2, waarde3, ...);
INSERT INTO voorbeeld:
INSERT INTO Klanten (Klantnaam, Contactnaam, Adres, Stad, Postcode, Land)
VALUES ('Autoshop', 'Klaas Vaak', 'Straatweg 52', 'Stad-aan-het-water', '3456 AD', 'Nederland');
Voorbeeld via de opdrachtprompt van psql:
test=# INSERT INTO Personen
test-# VALUES (1, 'Vaak','Klaas','Straatweg 52','Stad-aan-het-water');
INSERT 0 1
test=# SELECT * FROM Personen;
persoonid | achternaam | voornaam | adres | stad
-----------+------------+----------+--------------+--------------------
1 | Vaak | Klaas | Straatweg 52 | Stad-aan-het-water
(1 row)
test=#
INSERT INTO SELECT
INSERT INTO SELECT kopieert gegevens uit de ene tabel en voegt ze in in de andere tabel. De datatypen in beide tabellen moeten overeenkomen. De reeds bestaande gegevens in de doeltabel veranderen niet.
INSERT INTO SELECT algemene vorm:
--Alle kolommen kopiëren:
INSERT INTO tabel2
SELECT * FROM tabel1
WHERE voorwaarde;
--Sommige kolommen kopiëren:
INSERT INTO tabel2 (kolom1, kolom2, kolom3, ...)
SELECT kolom1, kolom2, kolom3, ...
FROM tabel1
WHERE voorwaarde;
SQL INSERT INTO SELECT voorbeelden:
--Leveranciers kopiëren naar Klanten
--kolommen zonder gegevens zullen NULL bevatten:
INSERT INTO Klanten (Klantnaam, Stad, Land)
SELECT Leveranciernaam, Stad, Land FROM Leveranciers;
--Leveranciers kopiëren naar Klanten
INSERT INTO Klanten (Klantnaam, Contactnaam, Adres, Stad, Postcode, Land)
SELECT Leveranciernaam, Contactnaam, Adres, Stad, Postcode, Land FROM Leveranciers;
--Alleen Leveranciers uit Duitsland
--kopiëren naar Klanten:
INSERT INTO Klanten (Klantnaam, Stad, Land)
SELECT Leveranciernaam, Stad, Land FROM Leveranciers
WHERE Land='Duitsland';