A instrução UPDATE é utilizada para alterar informações em um Banco de Dados. Poderíamos, por exemplo, criar um formulário onde o usuário pode alterar os seus dados cadastrais. Primeiro os dados são recuperados a partir do Banco de Dados (usando uma instrução SELECT), em seguida as alterações são enviadas de volta para o Banco de Dados, através de uma instrução Update. Vamos estudar esta instrução através de exemplos, assim como fizemos com a instrução SELECT.
Exemplo 1: Criar uma instrução SQL que aumenta o PreçoUnitário em 20%, em todos os registros da tabela DetalhesdoPedido, devido a um ajuste na moeda e uma desvalorização em relação ao Dólar.
UPDATE DetalhesdoPedido
SET PreçoUnitário = PreçoUnitário*1.2
Observe a simplicidade da instrução SQL. Utilizamos uma instrução UPTADE, seguida do nome da tabela onde será feita a atualização. Em seguida uma instrução SET com a expressão de atualização para aumentar em 20% o PreçoUnitário em todos os registros da tabela DetalhesdoPedido.
Vamos alterar a instrução anterior, para incluir um critério na consulta de atualização.
Exemplo 2: Alterar a instrução SQL do item anterior para que somente sejam aumentados em 20%, o campo PreçoUnitário dos registros cujo PreçoUnitário for maior ou igual a R$ 20,00.
UPDATE DetalhesdoPedido
SET PreçoUnitário = PreçoUnitário*1.2
WHERE PreçoUnitário>=20
|
Promoção: Livro Windows Server 2008 R2
Curso Completo, 1222 páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!
|
Adicionamos uma cláusula WHERE, para atualizar apenas os registros cujo PreçoUnitário seja maior ou igual a R$ 20,00.
Exemplo 3: Alterar a instrução SQL do exemplo anterior para que somente sejam aumentados os registros cujo PreçoUnitário for maior ou igual a R$ 20,00 E cujo NúmeroDoPedido seja menor do que 10500.
UPDATE DetalhesdoPedido
SET PreçoUnitário = PreçoUnitário*1.2
WHERE (PreçoUnitário>=20)
AND
(NúmeroDoPedido<10500)
Observe que utilizamos critérios em dois campos (PreçoUnitário e NúmeroDoPedido) e que estes critérios estão ligados por um operador AND, o que significa que um registro, somente será atualizado se ele atender aos dois critérios ao mesmo tempo (PreçoUnitário maior ou igual a 20 e NúmeroDoPedido menor do que 10500). Se o registro atender apenas uma das condições, o registro não terá o seu PreçoUnitário atualizado.
Vamos refinar um pouco mais a nossa consulta de atualização. Vamos fazer com que somente sejam atualizados os Pedidos para o ano da DataDoPedido igual a 1995, e ainda iremos manter os critérios adicionados até agora.
Exemplo 4: Alterar a instrução SQL do exemplo anterior para incluir um critério para que o Ano da DataDoPedido seja 1995. Você terá que incluir a tabela Pedidos, uma vez que o campo DataDoPedido, encontra-se nesta tabela.
UPDATE Pedidos INNER JOIN DetalhesdoPedido
ON Pedidos.NúmeroDoPedido = DetalhesdoPedido.NúmeroDoPedido
SET DetalhesdoPedido.PreçoUnitário = PreçoUnitário*1.2
WHERE (DetalhesdoPedido.PreçoUnitário>=20)
AND
(DetalhesdoPedido.NúmeroDoPedido<10500)
AND
Year(DataDoPedido)=1995)
Temos diversos detalhes interessantes a observar nesta instrução SQL.
Primeiro um INNER JOIN relacionando as tabelas Pedidos e DetalhesdoPedido, através do campo NúmeroDoPedido. Isso mostra que é perfeitamente possível, utilizar um INNER JOIN dentro de uma consulta de atualização. Segundo, temos a utilização da função Year para extrair apenas o ano do campo DataDoPedido e compará-lo com o critério 1995, conforme já exemplificado quando dos exemplos da instrução SELECT.
Novamente a utilização de operadores e funções, nos fornece uma grande flexibilidade em termos de construção de nossas consultas. |