SQL INSERT – Infoga en eller flera rader i en tabell

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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *