Noen versjoner av Structured Query Language ( SQL) som Oracle tillate bruk av oppdateringen setninger ved hjelp av et utvalgt sett av verdier innenfor en sub spørring . En oppdatering uttalelse opprettet på denne måten benytter vanligvis en sub spørring som inneholder verdier fra en annen tabell . Verdiene som returneres fra sub velge fullføre tilstanden til update uttalelser. Sagt på en annen måte , baserer en oppdatering setning dens oppdatering tilstand av verdier valgt fra et annet bord i et enkelt trinn , i stedet for to trinn. Instruksjoner
en
Lag den første delen av setningen for å oppdatere kolonner . Den første delen av en uttalelse i dette tilfellet er å oppdatere en bestemt tabell navn tilordner verdier til kolonner som så : en
OPPDATERING
SET ( , < column_name > ) =
Bytt med navnet på tabellen for å oppdatere og ( eller navn) til riktig kolonne ( r) som skal oppdateres . Denne metoden vil fungere for én eller flere kolonneverdiene . . Verdiene vil bli tildelt i neste trinn med en velge
Derfor kan en typisk virkelige verden eksempel være : en
Update kunde SET ( account_no , invoice_amt ) =
2
Legg den andre delen av setningen ved hjelp av en sub - select . Den sub -select i dette tilfellet vil se etter verdier å oppdatere knyttet til de viktigste spørringen . Et eksempel på dette er som følger : en
( SELECT FRA HVOR )
De nye verdiene < . ; tilstand > og angi SQL betingelse for å implementere og verdien ( e) som skal tildeles i sub - spørringen
En ekte eksempel på uttalelsen så langt er : .
< p > Oppdater kunde SET ( account_no , invoice_amt ) = ( SELECT accountno , invoicecost fra salg WHERE purchaseorder = 123456 ) .
p Dette tildeler kontonummer og fakturabeløp kontonummeret , fakturabeløpet i kundens tabellen til samme verdier som finnes i salg tabellen, for kjøpsordre 123456 .
3
fullføre oppdateringen uttalelse. Dette skritt spesifiserer de endelige et viktig kriterium for å oppdatere kunden tabellen for riktig kunde , ellers alle kundene i tabellen ville være et uhell oppdatert
Uttalelsen skulle ende med : .
HVOR < ; column_name > ; .
kolonnenavnet angir feltet å basere oppdateringen på , tilstanden for kriteriene og verdien å sammenligne for oppdateringen oppdraget
< p > i reelle termer, kan vårt eksempel nå bli utvidet til :
Update kunde SET ( account_no , invoice_amt ) = ( SELECT accountno , invoicecost fra salg WHERE purchaseorder = 123456 ) HVOR customer_no = 457645
< p > Som spesifisert , tildeler denne kontonummer og fakturabeløp kontonummeret , fakturabeløpet i kundens bordet til de samme verdiene som finnes i salg tabellen , for kjøpsordre 123456 . Til slutt angir kundenummeret i kundens tabellen som denne spørringen skal kun gjelde for kunde nummer 457645 .