Olá pessoal nesta Quick iremos continuar com falando sobre SQL, vamos ver como alterar e excluir os dados de nossas tabelas.
Alteração de dados em tabelas
Uma vez que uma linha esteja em uma tabela, pode-se querer alterar o conteúdo de uma ou mais colunas, ou até o conteúdo de uma coluna em diversas linhas. Para isso, utilizamos o comando UPDATE:
UPDATE tabela
SET coluna = conteúdo [, coluna = conteúdo, ...]
[WHERE condição ]
Onde:
Cláusula |
Descrição |
Tabela |
Nome da tabela onde será realizada a alteração. |
Coluna |
Coluna que terá seu valor atualizado. |
Conteúdo |
Novo conteúdo para a coluna. |
Condição |
Condição que indicará o escopo (limite) de atualização das linhas. |
Assim, se quisermos alterar o preço de um CD, podemos utilizar o seguinte comando, filtrando na cláusula WHERE a chave primária do CD cujo preço será alterado:
UPDATE cd
SET PRECO_VENDA = 15
WHERE CODIGO_CD = 1;
Imagine que ocorra um aumento de preço para todos os CDs de uma determinada gravadora. Nesse caso, utilizaremos como filtro da cláusula WHERE o código da gravadora, coluna que faz parte da estrutura da tabela CD:
UPDATE cd
SET PRECO_VENDA = 15
WHERE CODIGO_GRAVADORA = 2;
Também é possível alterar o conteúdo de uma coluna com base nela mesma.
Aumenta-se o preço de todos os CDs de uma gravadora em 5%, multiplicando o próprio preço do CD por 1.05:
UPDATE cd
SET PRECO_VENDA = PRECO_VENDA * 1.05
WHERE CODIGO_GRAVADORA = 2
Se não for especificada a cláusula WHERE, então todas as linhas serão afetadas pelo comando UPDATE. Todos os CDs serão aumentados em 5%.
Mais de uma coluna poderia ser alterada ao mesmo tempo e poderíamos utilizar o conteúdo de uma coluna para alterar o conteúdo de outra. Imagine uma tabela de Item de Pedidos em que, por qualquer motivo, escolheu-se armazenar o valor total do item na linha (valor unitário multiplicando pela quantidade). O comando UPDATE ficaria assim:
UPDATE ItemPedido
SET VLTOTALITEM = VLUNITARIO * NRQTDE
WHERE CDPEDIDO = 1 AND NRITEM = 1;
Exclusão de dados em tabelas
Sempre que alguma informação deixar de ser relevante para ser armazenada, pode-se excluí-la de tabelas. O comando DELETE pode, da mesma forma que o comando UPDATE, afetar uma ou mais linhas de uma tabela. Mais uma vez, o escopo da exclusão será definido pela cláusula WHERE.
Neste primeiro exemplo, apenas o autor com código 1, será excluído.
DELETE FROM autor
WHERE CDAUTOR = 1;
Neste exemplo todos os CDs da gravadora 2 serão excluídos:
DELETE FROM cd
WHERE CODIGO_GRAVADORA = 2;
Neste último exemplo, todas as músicas serão excluídas:
DELETE FROM musica;
Nesta série de Quick Tips coloquei todo o conteúdo da DDL (Data Definition Language) e a DML (Data Manipulation Language). E podemos perceber como é fácil e intuitivo a utilização dos seus comandos e funções.
Vou ficando por aqui.
Um abraço
Rubens Antunes