De instructie INSERT
Gebruik de instructie INSERT
om records in een databasetabel te maken. U kunt een van de volgende waarden opgeven:
-
Een lijst met waarden die als een nieuwe record moeten worden ingevoegd
-
Een
SELECT
-instructie die gegevens uit een andere tabel kopieert die als een nieuwe reeks records moeten worden ingevoegd.
De instructie INSERT
is als volgt gestructureerd:
INSERT INTO tabelnaam [(kolomnaam, ...)] VALUES (uitdr, ...)
kolomnaam
is een optionele lijst met kolomnamen die de naam en volgorde van de kolommen aangeeft waarvan de waarde in het VALUES
-element zijn opgegeven. Als u kolomnaam
weglaat, moeten de waarde-uitdrukkingen (uitdr
) waarden bieden voor alle kolommen die in de tabel zijn gedefinieerd en moeten ze dezelfde volgorde hebben als de kolommen die voor de tabel zijn gedefinieerd. kolomnaam
kan ook een veldherhaling opgeven, zoals laatsteDatums[4]
.
uitdr
is de lijst met uitdrukkingen die de waarden voor de kolommen van de nieuwe record geeft. Doorgaans zijn de uitdrukkingen constante waarden voor de kolommen (maar ze kunnen ook een subopvraag zijn). Tekenreekswaarden moet u tussen enkele aanhalingstekens (') plaatsen. Als u een dergelijk aanhalingsteken wilt invoegen in een tekenreekswaarde die zelf al tussen enkele aanhalingstekens is geplaatst, gebruikt u twee opeenvolgende enkele aanhalingstekens (bijvoorbeeld: 'Programma''s'
).
Subopvragen moeten tussen haakjes worden geplaatst.
Voeg een lijst met uitdrukkingen in.
INSERT INTO werkn (achternaam, voornaam, werkn_ID, salaris, in_dienst)
VALUES ('Smit', 'Jan', 'E22345', 27500, DATE '2028-06-05')
Elke INSERT
-instructie voegt één record aan de databasetabel toe. In dit geval is een record toegevoegd aan de werknemersdatabasetabel werkn
. Waarden worden opgegeven voor vijf kolommen. Aan de resterende kolommen in de tabel wordt een lege waarde (Null) toegewezen.
In containervelden kunt u alleen tekst INVOEGEN
, tenzij u een instructie met parameters voorbereidt en de gegevens vanuit uw toepassing stroomsgewijs overbrengt. Als u binaire gegevens wilt gebruiken, kunt u de bestandsnaam gewoon toewijzen door deze tussen enkele aanhalingstekens te plaatsen of de functie PutAs()
te gebruiken. Wanneer de bestandsnaam wordt opgegeven, wordt het bestandstype afgeleid van de bestandsextensie:
INSERT INTO tabelnaam (containernaam) VALUES(? AS 'bestandsnaam.bestandsextensie')
Niet-ondersteunde bestandstypen worden ingevoegd als het type FILE.
Bij het gebruik van de functie PutAs()
geeft u het type op: PutAs (kol, ‘type’)
, waarbij de typewaarde een ondersteund bestandstype is dat is beschreven in De inhoud van een containerveld ophalen: de functie CAST() en GetAs().
De SELECT
-instructie is een opvraag die als resultaat waarden geeft voor elke kolomnaam
-waarde die in de lijst met kolomnamen is opgegeven. Als u een SELECT
-instructie gebruikt in plaats van een lijst met waarde-uitdrukkingen kunt u een reeks rijen uit een tabel selecteren en deze in een andere tabel invoegen met behulp van één INSERT
-instructie.
Voeg in met een SELECT
-instructie.
INSERT INTO werkn1 (voornaam, achternaam, werkn_ID, afd, salaris)
SELECT voornaam, achternaam, werkn_ID, afd, salaris FROM werkn
WHERE afd = 'D050'
In dit type INSERT
-instructie moet het aantal in te voegen kolommen overeenkomen met het aantal kolommen in de SELECT
-instructie. De lijst met in te voegen kolommen moet overeenkomen met de kolommen in de SELECT
-instructie, net zoals deze ook zou moeten overeenkomen met een lijst met waarde-uitdrukkingen in het andere type INSERT
-instructie. De eerste ingevoegde kolom komt bijvoorbeeld overeen met de eerste geselecteerde kolom; de tweede ingevoegde kolom met de tweede geselecteerde kolom, enzovoort.
De grootte en het gegevenstype van deze overeenkomende kolommen moet compatibel zijn. Elke kolom in de SELECT
-lijst moet een gegevenstype hebben dat het ODBC- of JDBC-clientstuurprogramma accepteert bij een normale INSERT
/UPDATE
van de overeenkomstige kolom in de INSERT
-lijst. Waarden worden afgekapt wanneer de waarde in de kolom van de SELECT
-lijst groter is dan die van de overeenkomende kolom van de INSERT
-lijst.
De SELECT
-instructie wordt geëvalueerd voordat waarden worden ingevoegd.