Come usare l'aggiornamento con Select Sottoquery

July 14

Come usare l'aggiornamento con Select Sottoquery


Alcune versioni di Structured Query Language (SQL) come Oracle consentono l'uso di istruzioni di aggiornamento utilizzando un set selezionato di valori all'interno di una query sub. Un'istruzione di aggiornamento creato in questo modo utilizza generalmente una query sub contenente i valori da un'altra tabella. I valori restituiti dal sub selezionare completare la condizione per le istruzioni di aggiornamento. In altre parole, un'istruzione di aggiornamento basa la sua condizione di aggiornamento su valori selezionati da un'altra tabella in un unico passaggio, piuttosto che due passi.

istruzione

1 Creare la prima parte dello stato per aggiornare colonne. La prima parte di una dichiarazione in questo caso è quello di aggiornare un nome tabella specifica assegnando valori appropriati per le colonne in questo modo:

UPDATE <table_name>

SET (<column_name>, <column_name>) =

Sostituire <table_name> con il nome della tabella da aggiornare e <column_name> (o nomi) a colonna (s) appropriato per essere aggiornato. Questo metodo funziona per valori singoli o multipli di colonna. I valori verranno assegnati nella fase successiva con un prescelto.

Pertanto, un tipico esempio reale potrebbe essere:

SET Aggiornamento cliente (account_no, invoice_amt) =

2 Aggiungere la seconda parte della comunicazione con un sub-select. Il sub-select in questo caso cercherà di aggiornare i valori relativi alla query principale. Un esempio di ciò è la seguente:

(Selezionare <column_name> FROM <table_name> dove <nome colonna> <condizione> <valore>).

I nuovi valori <condizione> e <valore> Specifica la condizione SQL per implementare e il valore (s) da assegnare nel sub-query.

Un vero esempio di dichiarazione finora è:

Aggiornamento cliente SET (account_no, invoice_amt) = (SELECT AccountNo, invoicecost delle vendite DOVE PurchaseOrder = 123456).

Questo assegna numero di conto e fatture ammonta al numero di conto, importo della fattura nella tabella cliente agli stessi valori contenuti all'interno della tabella di vendita, per ordine di acquisto 123456.

3 Completare la dichiarazione di aggiornamento. Questa passaggi specifica i un criterio importante finali per aggiornare la tabella cliente per il cliente corretto, altrimenti tutti i clienti nella tabella sarebbero accidentalmente aggiornate.

La dichiarazione dovrebbe terminare con:

WHERE <column_name> <condizione> <valore>;

Il nome della colonna specifica il campo di basare l'aggiornamento, la condizione per i criteri e il valore da confrontare per l'assegnazione di aggiornamento.

In termini reali, il nostro esempio può essere estesa a:

Aggiornamento cliente SET (account_no, invoice_amt) = (SELECT AccountNo, invoicecost delle vendite DOVE PurchaseOrder = 123456) DOVE customer_no = 457645

Come specificato, questo assegna numero di conto e fatture ammonta a il numero di conto, importo della fattura nella tabella cliente agli stessi valori contenuti all'interno della tabella di vendita, per ordine di acquisto 123456. Infine, il numero cliente nella tabella cliente specifica che la query dovrebbe applicano soltanto alle codice cliente 457645.

Consigli e avvertenze

  • La sintassi completa di una query di selezione all'interno di un'istruzione aggiornamento per valori singoli e multipli è la seguente:
  • UPDATE <table_name> <alias>
  • SET (<column_name_list>) = (
  • Selezionare <column_name_list>
  • FROM <table_name> <alias>
  • WHERE <alias.table_name> <condizione> <alias.table_name>);