Sök…
Syntax
- INSERT IN tabellnamn (kolumn1, kolumn2, kolumn3, ...) VÄRDER (värde1, värde2, värde3, ...);
- INSERT INTO tabellnamn (kolumn1, kolumn2 ...) VÄLJ värde1, värde2 ... från annan tabell
Sätt in ny rad
INSERT INTO Customers
VALUES ('Zack', 'Smith', '[email protected]', '7049989942', 'EMAIL');
Detta uttalande kommer att infoga en ny rad i Customers
. Observera att ett värde inte anges för Id
kolumnen, eftersom det kommer att läggas till automatiskt. Alla andra kolumnvärden måste dock anges.
Infoga endast specificerade kolumner
INSERT INTO Customers (FName, LName, Email, PreferredContact)
VALUES ('Zack', 'Smith', '[email protected]', 'EMAIL');
Detta uttalande kommer att infoga en ny rad i Customers
. Data infogas endast i de angivna kolumnerna - notera att inget värde anges för kolumnen PhoneNumber
. Observera dock att alla kolumner som är markerade som not null
måste inkluderas.
INSERT data från en annan tabell med SELECT
INSERT INTO Customers (FName, LName, PhoneNumber)
SELECT FName, LName, PhoneNumber FROM Employees
I det här exemplet infogas alla anställda i kundtabellen . Eftersom de två tabellerna har olika fält och du inte vill flytta över alla fält måste du ställa in vilka fält du vill infoga i och vilka fält du vill välja. De korrelerande fältnamnen behöver inte kallas samma sak, utan behöver då vara samma datatyp. I det här exemplet antas att ID-fältet har en identitetsspecifikationsuppsättning och kommer att öka automatiskt.
Om du har två tabeller som har exakt samma fältnamn och bara vill flytta alla poster över kan du använda:
INSERT INTO Table1
SELECT * FROM Table2
Sätt i flera rader på en gång
Flera rader kan läggas till med ett enkelt infogskommando:
INSERT INTO tbl_name (field1, field2, field3)
VALUES (1,2,3), (4,5,6), (7,8,9);
För att infoga stora mängder data (bulkinsats) på samma gång finns DBMS-specifika funktioner och rekommendationer.
MySQL - LADDA DATA INFIL
MSSQL - BULKINSERT