Sammendrag: i denne opplæringen lærer du hvordan du bruker SQL INSERT-setning for å sette inn data i tabeller.
INSERT
setningen setter inn en eller flere rader i en tabell. INSERT
utsagnet blir noen ganger referert til som et INSERT INTO
utsagn.
SQL INSERT-setning – sett inn en rad i en tabell
Følgende illustrerer INSERT
utsagn som setter inn en enkelt rad i en eksisterende tabell.
1
2
|
INSERT IN tabell (kolonne1, kolonne2, …)
VERDIER (verdi1, verdi2, …);
|
For å sette inn en rad i en tabell, må du spesifiser tre ting:
- Først tabellen, som du vil sette inn en ny rad, i
INSERT INTO
klausulen. - For det andre en kommaseparert liste over kolonner i tabellen omgitt av parenteser.
- For det tredje en kommaseparert liste over verdier omgitt av parenteser i
VALUES
klausul.
Kolonnelisten må ha samme antall elementer som verdilisten, ellers vil databasemotoren utstede en feil.
La oss ta en titt ved følgende shippers
tabell:
Følgende INSERT
uttalelse setter inn en ny rad i shippers
tabellen:
1
2
|
INSERT INTO shippers (companyyname, phone)
VALUES («Alliance Shippers», «1-800-222-0451»);
|
To konstanter, "Alliance Shippers"
og "1-800-222-0451"
er spesifisert i VALUES
klausulen. Databasemotoren satte dem inn i henholdsvis companyname
og phone
-kolonnene.
Etter at uttalelsen ble utført, ble databaseserveren returnerer en melding for å indikere antall berørte rader. I dette tilfellet får vi en melding «1 rad berørt» informert om at en ny rad er satt inn vellykket.
Legg merke til at vi ikke spesifiserte shipperID
kolonne i kolonnelisten fordi shipperID
kolonnen er en AUTO INCREMENT
kolonne, genererer databasemotoren neste sekvens for den automatisk hver gang en ny rad blir satt inn i tabellen.
For å hjelpe deg med å skrive mindre kode, gir SQL en kortere form av INSERT
-uttalelsen som følger:
1
2
|
INSERT IN tabell
VERDIER (verdi1, verdi2, …)
|
I dette skjemaet må verdilisten ha samme rekkefølge som kolonnelisten i tabellen. Hvis du bruker denne formen for uttalelse, må du oppgi verdier for alle kolonner unntatt AUTO INCREMENT
kolonnen.
Det er god praksis å bruke kolonnenavnene i INSERT
uttalelse for å gjøre koden lettere å vedlikeholde.
Følgende INSERT
uttalelse har samme effekt som den over:
1
2
|
INSERT INTO shippers
VALUES (» Alliance Shippers «,» 1-800-222-0451 «);
|
SQL INSERT-setning – sett inn flere rader i en tabell
Uttrykket INSERT
lar deg også sette inn flere rader i en tabell med en enkelt setning som følger:
1
2
3
4
|
INSERT INTO table_name (column1, column2…)
VALUES (value1, value2,…),
(value1, value2,…) ,
…
|
I dette skjema, må du oppgi flere lister med verdier, hver liste er atskilt med komma.
Følgende INSERT
setning setter inn to rader i shippers
tabellen:
1
2
3
|
INSERT INTO shippers (companyName, phone)
VALUES («UPS», «1-800-782-7892»),
(«DHL», «1-800-225-5345»)
|
SQL INSERT-setning – kopier tabelldata
I stedet for å spesifisere en liste over verdier, kan du bruke en SELECT-setning for å velge verdier fra en annen tabell og levere dem til INSERT
uttalelse. Dette lar deg kopiere data fra en tabell til en annen tabell.
Følgende uttalelse illustrerer hvordan du kopierer data fra another_table
til table
:
1
2
3
4
5
6
7
|
INSERT INTO-tabell (kolonne1, kolonne2, …)
VELG
kolonne1, kolonne2, …
FRA
en annen tabell
HVOR
tilstand
|
Kolonnelisten i SELECT
-satsen må svare til listen over kolonner i INSERT INTO
klausul. Hvis du bare vil kopiere delvise data, må du angi en tilstand i WHERE-setningen.
Anta at du har en midlertidig tabell med navnet shippers_tmp
som har det samme struktur som shippers
tabellen. For å kopiere data fra shippers
tabellen til shippers_tmp
tabellen, bruker du følgende utsagn:
1
2
3
4
5
|
INSERT INTO shippers_tmp (shipperid, name, phone)
VELG
shipperid, firmanavn, telefon
FRA
avsendere
|
I denne opplæringen har du lært hvordan du bruker setningen INSERT
for å sette inn en eller flere rader i en tabell. I tillegg lærte du også hvordan du kopierer dataene fra en tabell til en annen tabell ved å bruke INSERT SELECT INTO
-uttalelsen.
- Var denne veiledningen nyttig?
- JaNei