INSERT er et SQL-uttrykk som legger til rader i en tabell i en relasjonell database. En INSERT-setning kan kun sette inn data i én tabell.
Syntaks INSERT-spørringer består av spesifikasjonene INSERT INTO og VALUES. INSERT INTO bestemmer hvilken tabell og hvilke kolonner verdiene skal settes inn i, og VALUES spesifiserer verdiene som skal settes inn.
For å sette inn verdier i alle kolonnene, benyttes en slik spørring: INSERT INTO tabell VALUES ( "Verdi 1 i rad 1", "Verdi 2 i rad 1", "Verdi 3 i rad 1" ), ( "Verdi 1 i rad 2", "Verdi 2 i rad 2", "Verdi 3 i rad 2" ), ( "Verdi 1 i rad 3", "Verdi 2 i rad 3", "Verdi 3 i rad 3" )
For å sette inn verdier i noen av kolonnene, benyttes en slik spørring: INSERT INTO tabell ( kolonne1, kolonne3 ) VALUES ( "Verdi 1 i rad 1", "Verdi 3 i rad 1" ), ( "Verdi 1 i rad 2", "Verdi 3 i rad 2" ), ( "Verdi 1 i rad 3", "Verdi 3 i rad 3" )
Antallet kolonner og verdier må være det samme. Hvis en kolonne ikke er spesifisert, vil en forhåndsdefinert verdi for kolonnen bli benyttet. Verdiene spesifisert av INSERT-utsagnet må tilfredsstille alle begrensningene for tabellen, for eksempel primærnøkler eller NOT NULL-begrensninger. Hvis en syntaksfeil oppstår, eller noen av begrensningene er brutt, vil ikke den nye raden legges til i tabellen og en feilmelding vil bli returnert.
En INSERT-spørring kan også brukes til å hente ut data fra andre tabeller, endre det hvis ønskelig, og sette det inn i en ny tabell. Dette kan gjøres ved hjelp av en enkelt spørring som ikke involverer noen mellomprosessering i klientapplikasjonen. En nøstet SELECT-spørring brukes i stedet for VALUES. Den nøstede spørringen kan inneholde JOIN, funksjonskall, og kan referere til den samme tabellen som data skal settes inn i. INSERT INTO tabell2 SELECT * FROM tabell1 WHERE kolonne IN ("Verdi1", "Verdi2") SELECT-uttrykket produserer en midlertidig tabell, og skjemaet til den midlertidige tabellen må være likt skjemaet i tabellen som skal motta data.
Eksempel Tabellen telefonbok ser slik ut: fornavn etternavn bosted telefonnummer Ola Nordmann Oslo 01234567 Navn Navnesen Bergen 88765432 Denne spørringen blir sendt: INSERT INTO telefonbok ( fornavn, etternavn, telefonnummer ) VALUES ( "Jens", "Jensen", 11223344 ), ( "Kari", "Nordmann", 99887766 ) Tabellen ser da slik ut: fornavn etternavn bosted telefonnummer Ola Nordmann Oslo 01234567 Navn Navnesen Bergen 88765432 Jens Jensen 11223344 Kari Nordmann 99887766
Kategori:SQL