Sammanfattning: i den här självstudien lär du dig hur du använder SQL INSERT-uttalande för att infoga data i tabeller.
Uttrycket INSERT
infogar en eller flera rader i en tabell. INSERT
-uttrycket kallas ibland ett INSERT INTO
-uttalande.
SQL INSERT-sats – infoga en rad i en tabell
Följande illustrerar INSERT
uttalande som infogar en enda rad i en befintlig tabell.
1
2
|
INSÄTT I tabellen (kolumn1, kolumn2, …)
VÄRDEN (värde1, värde2, …);
|
För att infoga en rad i en tabell måste du ange tre saker:
- Först tabellen som du vill infoga en ny rad i
INSERT INTO
-satsen. - För det andra, en kommaseparerad lista med kolumner i tabellen omgiven av parenteser.
- För det tredje en kommaseparerad lista med värden omgiven av parenteser i
VALUES
klausul.
Listan med kolumner måste ha samma antal element som listan över värden, annars kommer databasmotorn att ge ett fel.
Låt oss ta en titt vid följande shippers
tabell:
Följande INSERT
uttalande infogar en ny rad i shippers
tabellen:
1
2
|
INSÄTTA I avsändare (företagsnamn, telefon)
VÄRDEN (”Alliance Shippers”, ”1-800-222-0451”);
|
Två konstanter, "Alliance Shippers"
och "1-800-222-0451"
anges i avsnittet VALUES
. Databasmotorn infogade dem i kolumnerna companyname
respektive phone
.
Efter att ha utfört uttalandet kör databasservern returnerar ett meddelande för att ange antalet berörda rader. I det här fallet får vi meddelandet ”1 rad påverkad” informerad om att en ny rad har infogats framgångsrikt.
Observera att vi inte specificerade shipperID
kolumn i kolumnlistan eftersom shipperID
kolumnen är en AUTO INCREMENT
kolumn, genererar databasmotorn nästa sekvens för den automatiskt när en ny rad infogas i tabellen.
För att hjälpa dig att skriva mindre kod tillhandahåller SQL en kortare form av INSERT
uttalande enligt följande:
1
2
|
INSÄTTA I tabellen
VÄRDEN (värde1, värde2, …)
|
I det här formuläret måste värdelistan ha samma ordning som listan med kolumner i tabellen. Om du använder denna form av uttalande, du måste ange värden för alla kolumner utom AUTO INCREMENT
kolumnen.
Det är bra att använda kolumnnamnen i INSERT
uttalande för att göra koden enklare att underhålla.
Följande INSERT
uttalande har samma effekt som den ovan:
1
2
|
INSÄTTA I avsändare
VÄRDEN (” Alliance Shippers ”,” 1-800-222-0451 ”);
|
SQL INSERT-sats – infoga flera rader i en tabell
Uttrycket INSERT
låter dig också infoga flera rader i en tabell med ett enda uttalande enligt följande:
1
2
3
4
|
INSÄTTA I tabellnamn (kolumn1, kolumn2 …)
VÄRDEN (värde1, värde2,…),
(värde1, värde2,…) ,
…
|
I detta formulär måste du ange flera listor med värden, varje lista är separerad med ett komma.
Följande INSERT
uttalande infogar två rader i shippers
tabellen:
1
2
3
|
INSERT INTO avsändare (företagsnamn, telefon)
VÄRDEN (”UPS”, ”1-800-782-7892”),
(”DHL”, ”1-800-225-5345”)
|
SQL INSERT-uttalande – kopiera tabelldata
I stället för att ange en lista med värden kan du använda ett SELECT-uttalande för att välja värden från en annan tabell och leverera dem till INSERT
påstående. Detta gör att du kan kopiera data från en tabell till en annan tabell.
Följande uttalande illustrerar hur man kopierar data från another_table
till table
:
1
2
3
4
5
6
7
|
INSERT IN tabell (kolumn1, kolumn2, …)
VÄLJ
kolumn1, kolumn2, …
FRÅN
en annan tabell
VAR
villkor
|
Kolumnlistan i SELECT
-satsen måste motsvara listan med kolumner i INSERT INTO
klausul. Om du bara vill kopiera partiell data måste du ange ett villkor i WHERE-satsen.
Antag att du har en tillfällig tabell med namnet shippers_tmp
som har samma struktur som shippers
-tabellen. För att kopiera data från shippers
-tabellen till shippers_tmp
-tabellen använder du följande uttalande:
1
2
3
4
5
|
INSERT INTO shippers_tmp (shipperid, name, phone)
VÄLJ
shipperid, företagsnamn, telefon
FRÅN
avsändare
|
I denna handledning har du lärt dig hur du använder uttalandet INSERT
för att infoga en eller flera rader i en tabell. Dessutom lärde du dig hur man kopierar data från en tabell till en annan tabell med hjälp av INSERT SELECT INTO
-uttalandet.
- Var denna handledning hjälpsam?
- Ja Nej