19.08.2021 Views

1546027450-1546027450-sql

Ensina estrutura básica de SQL

Ensina estrutura básica de SQL

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

83 - Capítulo 4 – DML – DATA MANIPULATION LANGUAGE

No exemplo apresentado a seguir veremos como é possível atualizar

a tabela CLIENTE a partir de dados mais atualizados encontrados na

tabela CLIENTE_2. E não apenas isso, mas também como inserir na

tabela CLIENTE os dados que constam na tabela CLIENTE_2 que não

são encontrados na tabela CLIENTE.

Em linhas gerais, informamos primeiro que queremos mesclar os dados

da tabela CLIENTE, referenciada através do apelido C, com os dados

da tabela CLIENTE_2, referenciada através do apelido C_2. A seguir

é colocada a condição: os códigos dos clientes devem ser iguais nas

duas tabelas (C.CODIGO_CLIENTE = C_2.CODIGO_CLIENTE ). Quando

isso ocorrer (MATCHED), os dados da tabela CLIENTE serão atualizados

conforme os dados da tabela CLIENTE_2. Por outro lado, quando não

forem encontrados valores correspondentes aos códigos de clientes na

tabela CLIENTE que sejam idênticos aos da tabela CLIENTE_2, os dados

encontrados na tabela CLIENTE_2 serão inseridos na tabela CLIENTE.

MERGE INTO CLIENTE C

USING CLIENTE_2 C_2 ON (

C.CODIGO_CLIENTE = C_2.CODIGO_CLIENTE)

WHEN MATCHED THEN

UPDATE

SET

C.NOME_CLIENTE = C_2.NOME_CLIENTE,

C.DATA_NASC_CLIENTE = C_2.DATA_NASC_CLIENTE,

C.UF_CLIENTE = C_2.UF_CLIENTE

WHEN NOT MATCHED THEN

INSERT

(C.CODIGO_CLIENTE, C.NOME_CLIENTE,

C.DATA_NASC_CLIENTE, C.UF_CLIENTE)

VALUES

(C_2.CODIGO_CLIENTE, C_2.NOME_CLIENTE,

C_2.DATA_NASC_CLIENTE, C_2.UF_CLIENTE);

O resultado será, portanto, uma tabela CLIENTE completamente

atualizada. Trata-se de um comando mais complexo, porém muitíssimo

útil em situações conforme a que acabamos de apresentar.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!