Olá pessoal, voltamos com nosso curso básico de SQL Server. Nesta parte, iremos ver os comandos DML Update e Delete e veremos a cláusula Where. Da mesma forma como fizemos na parte anterior, iremos fazer nessa alguns exemplos para melhor entendimento desses comandos. Confiram.

Update

Os dados pertencentes a múltiplas linhas de uma tabela podem ser alterados por meio do comando UPDATE. Quando usarmos o UPDATE, devemos especificar algumas informações, como o nome da tabela que será atualizada e os filtros que serão usados na atualização.

Sintaxe básica:

UPDATE nomedatabela
SET coluna1 = valor1, coluna2 = valor2, coluna3 = valor3,
WHERE critério.

Importante: Devemos passar sempre o Where, que é uma espécie de filtro em nossa tabela, porque senão o passarmos atualizaremos TODOS os dados da tabela e isso pode acarretar em diversos problemas, dependendo do tamanho e da complexidade da sua tabela.

Falarei mais a respeito do Where daqui a pouco.

Alterando os dados de uma coluna

Para simplificar o uso do UPDATE, vamos usar as tabelas do artigo anterior, Clientes e Funcionarios, conforme você vê abaixo:

resultado

Vamos alterar os salários dos funcionários, da tabela Funcionario. Para isso, faça o seguinte comando:

resultado

Nessa instrução SQL, do um aumento de 10% no salário dos funcionários que estiverem com o salário menor que 1900,00, que nesse exemplo são os dois primeiros, já que o 3º e o 4º são o mesmo. O resultado será esse:

resultado

Alterando os dados de várias colunas

Podemos alterar os dados de várias colunas. Vamos usar desta vez a tabela Clientes, como exemplo. Vamos aumentar em 5% o salário dos clientes que ganharem mais do que 1600.00. Aumentaremos também em 5 dias o campo DataCliente. A instrução de Update ficará assim:

resultado

E o resultado será esse:

resultado

Podemos usar a cláusula Update de outras maneiras também, para atualizar uma ou mais colunas, como vimos nestes exemplos. Sempre é bom lembrar que deve se tomar um cuidado ao usar o comando Update, principalmente em tabelas complexas, que contenham um número grande de dados, porque o Update não tem volta, fez tá feito! Por isso também a importância de usar a cláusula Where junto ao Update.

Delete

O comando DELETE deve ser usado quando desejamos excluir os dados de uma tabela. Sintaxe básica: DELETE FROM nomedatabela. Por exemplo, se quisermos, remover os dados da tabela Funcionario, devemos executar a seguinte instrução SQL:

resultado

Que nos resultará na limpeza completa dos dados da tabela Funcionario:

resultado

Simples né? Lembrando que este comando, assim como o UPDATE, pode ser perigoso em algumas situações, já que, uma vez executado esses comandos, não será possível desfazer a ação realizada. Portanto, devemos ficar atentos ao usar esses comandos em tabelas complexas.

Cláusula Where

Como dito anteriormente, a utilidade da cláusula WHERE é a de ser um filtro, que determina quais os dados que serão afetados, podendo ser usada juntamente com SELECT, UPDATE e DELETE. Podemos dizer então que essa cláusula determina o escopo de uma consulta a algumas linhas, realizando a filtragem dos dados que estejam de acordo com as condições definidas. Abaixo vamos criar uma nova tabela, a de Produtos, e utilizaremos a cláusula Where juntamente com as instruções SELECT, UPDATE e DELETE:

De início vamos criar a tabela Produtos...

resultado

...e inserir alguns dados:

resultado

Nossa tabela ficará com os seguintes dados:

resultado

Agora vamos fazer um SELECT, que irá me retornar somente os produtos de Informática. Para isso, uso a cláusula WHERE, como na imagem a seguir:

resultado

O resultado será esse:

resultado

Ok, a consulta só me retornou os produtos do tipo Informática, por meio da cláusula WHERE. Agora quero aumentar em 5% o valor dos produtos do tipo Informática. Como eu faço? Usando UPDATE com WHERE:

resultado

E o meu resultado será:

resultado

Pronto, aumentei em 5% o valor dos produtos de Informática. Agora quero apagar todos os produtos que tiverem um valor menor que 100.00. Como fazer? Usando DELETE com WHERE:

resultado

Como só tínhamos dois produtos com valor abaixo de 100.00, minha tabela terá agora 8 produtos:

resultado

Com o Where, podemos fazer milhares de filtros específicos para colunas diversas.