Den här artikeln innehåller grundläggande SQL INSERT
uttalanden som nybörjare kan använda för att infoga data i sina databastabeller.
Grundläggande syntax
Den grundläggande syntaxen för att infoga data i SQL ser ut så här:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);
Var:
TableName
är namnet på tabellen du vill infoga data iColumn1
, etc är namnen på de kolumner du vill infoga data iValue1
, etc är värdena som du infogar i dessa kolumner. Ordningen på dessa värden måste matcha ordningen som du angav kolumnerna (dvs.Value1
går in iColumn1
, etc).
Du kan utelämna kolumnnamnen om du infogar värden i alla kolumner. I så fall kan du använda följande syntax:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);
Observera att vissa DBMS använder en mer komplex syntax än denna (dvs de erbjuder fler alternativ), men detta är i allmänhet den grundläggande syntaxen som krävs för att infoga data i en tabell.
Infoga i alla kolumner
Här är ett grundläggande exempel som infogar data i alla kolumner i tabellen:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );
I det här fallet finns det två kolumner i PetTypes
tabell och vi infogar värden i båda kolumnerna, därför behöver vi inte ange kolumnnamnen.
Ovanstående uttalande är detsamma som att göra detta:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );
Vi kan kontrollera vår data genom att köra en SELECT
uttalande.
SELECT * FROM PetTypes;
Resultat:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | +-------------+-----------+
Infoga i några kolumner
Här är ett grundläggande exempel som infogar data i bara några av kolumnerna i tabellen:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );
Den här tabellen har faktiskt fyra kolumner, men vi infogar bara data i tre av dessa kolumner. Vi kan se det när vi kör en SELECT
uttalande mot tabellen efter att ha infogat data.
SELECT * FROM Users;
Resultat:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | +----------+-------------+------------+-----------------------------+
Hur man infogar värden i fel ordning
Kolumnlistmetoden gör att du kan infoga data som inte är i samma ordning:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );
I det här exemplet har jag ändrat ordningen på kolumnerna och deras respektive värden. Lyckligtvis ger kolumnlistan DBMS med vägledning om var varje värde ska infogas.
Så nu, om vi väljer vår data, kommer vi att se att den har infogats i rätt kolumner.
SELECT * FROM Users;
Resultat:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | | 2 | Bart | Pitt | 2020-11-21 05:30:07.4456867 | +----------+-------------+------------+-----------------------------+
Infoga resultatet av en fråga
Det är också möjligt att infoga resultatuppsättningen av en fråga i en tabell. Det finns ett par tillvägagångssätt du kan ta med detta.
- Använd koden
INSERT INTO... SELECT
påstående. I det här fallet måste du skapa tabellen först innan du infogar en frågeresultatuppsättning i den. - Använd CREATE TABLE … SOM SELECT-satsen. Den här metoden skapar automatiskt en ny tabell baserat på resultatuppsättningen för frågan och infogar sedan dessa resultat i tabellen. Även om den här metoden överensstämmer med SQL-standarden, stöds den inte av alla DBMS.
- Använd
SELECT INTO
påstående. Detta liknar det tidigare alternativet. Den skapar automatiskt en ny tabell baserat på resultatuppsättningen för frågan och infogar sedan dessa resultat i tabellen. Om föregående metod (CREATE TABLE ... AS SELECT
) inte stöds av din DBMS, prova den här metoden.