Nogle versioner af Structured Query Language ( SQL) som Oracle tillade brug af opdatering udsagn ved hjælp af et udvalgt sæt af værdier inden en sub forespørgsel. En opdatering erklæring skabt på denne måde generelt udnytter en sub forespørgsel indeholder værdier fra en anden tabel. De værdier, der returneres fra sub vælge fuldføre betingelse for opdateringen udsagn. Sagt på en anden måde , en opdatering erklæring baserer sin update tilstand på værdier valgt fra en anden tabel i et enkelt trin , snarere end to trin. Instruktioner
1
Opret den første del af oversigten til at opdatere kolonner. Den første del af en erklæring i denne sag er at opdatere en bestemt tabel navn tildele passende værdier til kolonner som så : Hej
UPDATE
SET ( , < column_name > ) =
Erstat med navnet på din tabel til at opdatere og (eller navnene ) til relevante kolonne (r ), der skal opdateres. Denne metode vil arbejde for en enkelt eller flere kolonneværdier . . Værdierne vil blive tildelt i næste trin ved hjælp af en vælger
Derfor kunne et typisk virkelige verden fx være : Hej
Opdatering kunde SET ( account_no , invoice_amt ) =
2
Tilsæt den anden del af meddelelsen ved hjælp af en sub- select . Den sub -select i dette tilfælde vil lede efter værdier at opdatere henføres til den primære forespørgsel. Et eksempel på dette er som følger : Hej
( SELECT FROM WHERE )
nye værdier < . , condition> og angive SQL betingelse for at gennemføre, og den værdi (er ), der skal tildeles i sub- query
reelt eksempel på opgørelsen er indtil videre : .
< p > Opdater kunde SET ( account_no , invoice_amt ) = ( SELECT accountno , invoicecost FROM salg WHERE purchaseorder = 123456 ) .
Denne tildeler kontonummer og fakturabeløb til kontonummer, fakturabeløb i kundens tabellen til samme værdier indeholdt i salget tabellen , for købsordre 123456 .
3
fuldføre opdateringen erklæring. Dette trin angiver den endelige et vigtigt kriterium for at opdatere kundens bord til den korrekte kunde , ellers alle kunder i tabellen ville være et uheld opdateret
Erklæringen skal afsluttes med: .
HVOR < ; column_name > ; .
kolonnen navnet angiver feltet for at basere opdateringen på , at betingelsen for de kriterier og den værdi, til at sammenligne til opdateringen opgaven
< p > I den virkelige verden betingelser , kan vores eksempel nu blive udvidet til : Hej
Opdatering kunde SET ( account_no , invoice_amt ) = ( SELECT accountno , invoicecost FROM salg WHERE purchaseorder = 123456 ) WHERE customer_no = 457.645
< p > Som specificeret , det tildeler kontonummer og fakturabeløb til kontonummer, fakturabeløb i kundens tabellen med de samme værdier , der er indeholdt i salget bordet, for købsordre 123456 . Endelig kundenummer i kundens tabellen angiver, at denne forespørgsel kun skal gælde for kundenummer 457.645 .