Algumas versões do Structured Query Language (SQL) , como Oracle permite o uso de instruções de atualização usando um conjunto selecionado de valores dentro de uma consulta sub . Uma instrução de atualização criado desta forma geralmente utiliza uma consulta sub contendo valores de outra tabela . Os valores retornados da sub selecionar completar a condição para as instruções de atualização . Dito de outra forma , uma instrução de atualização baseia a sua condição de atualização sobre os valores selecionados de outra tabela em uma única etapa , em vez de duas etapas. Instruções
1
Criar a primeira parte da declaração para atualizar colunas. A primeira parte de uma declaração , neste caso, é atualizar um nome de tabela específica atribuindo valores apropriados para colunas assim:
ATUALIZAÇÃO
SET ( , < column_name > ) =
Substituir com o nome de sua tabela para atualizar e (ou nomes) a coluna (s) apropriado para ser atualizado. Este método irá funcionar para valores únicos ou múltiplos coluna. Os valores serão atribuídos no próximo passo usando um seleto
Portanto, um exemplo típico do mundo real podem ser: .
Atualização SET cliente ( account_no , invoice_amt ) =
2
Adicione a segunda parte da declaração usando um sub -select. O sub-select , neste caso, vai olhar para os valores para atualizar relacionada à consulta principal. Um exemplo disto é a seguinte: .
(SELECT DE ONDE )
Os novos valores < ; condição > e especificar a condição de SQL para implementar e o valor (s) a ser atribuído na sub- consulta
Um exemplo real da declaração até agora é : .
Atualização SET cliente ( account_no , invoice_amt ) = (SELECT AccountNo , invoicecost das vendas ONDE PurchaseOrder = 123456 ) .
Isso atribui o número da conta e valores de faturas para o número da conta , valor da fatura na tabela de clientes para a mesma valores contidos na tabela de vendas , por ordem de compra 123456 .
3
Complete a instrução de atualização . Este passos especifica a final um critério importante para atualizar a tabela de clientes para o cliente correto , caso contrário, todos os clientes da tabela seriam atualizados acidentalmente
A declaração deve terminar com : .
ONDE < ; column_name > ; .
o nome da coluna especifica o campo para basear a atualização em , a condição para os critérios eo valor para comparar para a atribuição atualização
Em termos reais , o nosso exemplo pode agora ser expandida para :
Atualização SET cliente ( account_no , invoice_amt ) = (SELECT AccountNo , invoicecost das vendas ONDE PurchaseOrder = 123456) ONDE customer_no = 457645
Conforme especificado , este atribui o número da conta e valores de faturas para o número da conta , valor da fatura na tabela de clientes para os mesmos valores contidos na tabela de vendas , por ordem de compra 123456 . Finalmente, o número de cliente na tabela de clientes especifica que essa consulta só deve aplicar-se a número de cliente 457645 .