Quick Tips: Introdução ao SQL - Parte VIII

Nesta dica 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;

Leia todos artigos da série

Artigos relacionados