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:
Vamos alterar os salários dos funcionários, da tabela Funcionario. Para isso, faça o seguinte comando:
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:
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:
E o resultado será esse:
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:
Que nos resultará na limpeza completa dos dados da tabela Funcionario:
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...
...e inserir alguns dados:
Nossa tabela ficará com os seguintes dados:
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:
O resultado será esse:
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:
E o meu resultado será:
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:
Como só tínhamos dois produtos com valor abaixo de 100.00, minha tabela terá agora 8 produtos:
Com o Where, podemos fazer milhares de filtros específicos para colunas diversas.