SQL: UPDATE e DELETE

Introdução

Este artigo abordará os comandos UPDATE e DELETE que, assim como o comando INSERT, fazem parte dos comandos DML (Data Manipulation Language – Linguagem de Manipulação de Dados) da SQL (Structured Query Language – Linguagem Estruturada de Consulta). Esses dois comando são usados para atualizar e excluir os dados nas tabelas de um banco de dados.

Tabelas

Para demonstrar a utilização dos comandos UPDATE e DELETE serão utilizadas as tabelas mostradas no modelo lógico abaixo. Leia o artigo CREATE TABLE para maiores esclarecimentos sobre esse modelo lógico.

FUNCION >< SETOR

Relacionamento entre as tabelas FUNCION e SETOR

Comando UPDATE

O comando UPDATE é usado para alterar um ou mais registros numa tabela. Os registros que serão alterados dependem da condição informada na cláusula WHERE. A cláusula WHERE pode ser aprofundada no artigo Comando SELECT – Parte I.

Obs.: Os COLCHETES denotam uma parte opcional e as CHAVES indicam que partes podem ser repetidas indefinidamente ou omitidas completamente.

Sintaxe:

update TABELA set ATRIBUTO = VALOR [{, ATRIBUTO = VALOR}])]

[where CONDIÇÃO]

[;]

Rótulo Descrição
TABELA Nome da tabela
ATRIBUTO Nome do atributo
VALOR Novo valor que será estabelecido para o atributo
CONDIÇÃO Condição que deve ser atendida pelos registros que serão alterados

Utilização:

O exemplo apresentado na sequência irá alterar o valor do atributo NOME da tabela FUNCION , o novo valor do atributo será FRANCISCO para todo e qualquer registro onde o atributo ID_FUNCION seja igual a 6(seis).

Exemplo #1:

update FUNCION set NOME = ‘Francisco’
where ID_FUNCION = 6;

Obs.: O novo valor informado para o atributo NOME está entre apóstrofos, enquanto o valor informado no atributo ID_FUNCION para filtrar os registro não, isso ocorre porquê se o valor for numérico (inteiro e decimal) não é necessário o uso dos apóstrofos.

Exemplo #2:

update FUNCION set NOME = NOME || ‘ da Silva’
where ID_FUNCION = 6;

Nesse exemplo o atributo NOME da tabela FUNCION foi modificado. O novo valor será uma concatenação entre o valor atual do atributo NOME e o valor   da Silva (Obs.: Perceba que existe um espaço no início do valor entre apóstrofos). O pipe duplo para concatenar os valores pode ser usado nos SGBDRs PostgreSQL e Firebird .No SGBDR MySQL deve-se usar a função concat como mostrado no próximo exemplo.

Exemplo #3:

update FUNCION set NOME = concat(NOME, ‘ da Silva’)
where ID_FUNCION = 6;

Caso tenha a necessidade de atualizar um atributo numérico (inteiro e decimal) baseado no seu valor atual, como foi feito com o atributo NOME da tabela FUNCION, pode-se utilizar os operadores matemáticos +(adição), -(subtração), *(multiplicação) e /(divisão).

Comando DELETE

O comando DELETE é usado para excluir um ou mais registros de uma tabela. Os registros que serão excluidos dependem da condição informada na cláusula WHERE.

Sintaxe:

delete from TABELA

[where CONDIÇÃO]

[;]

Utilização:

delete from FUNCION
where ID_FUNCION = 6;

Nesse exemplo o comando DELETE irá excluir os registros com ID_FUNCION igual a 6(seis). Pelo exemplo é possível vê o quanto o comando DELETE é simples de ser usado, mas o mesmo deve ser empregado com cautela ou poderá excluir registros que não se deseja.

Conclusão

Os comandos UPDATE, DELETE e INSERT são utilizados durante toda a existência do banco de dados para modificar o estado dos dados armazenados. Este artigo mostrou de maneira simples como atualizar e excluir os dados de um banco de dados. No Canal da TIDP no youtube você pode assistir vídeos sobre esse e outros assuntos.

Até o próximo artigo.

Assuntos relacionados:

CREATE TABLE

INSERT

Comando SELECT – Parte I

SELECT: Indo além do WHERE simples

Possui mestrado em Computação Aplicada pela Universidade Estadual do Ceará (2010), especialização em Engenharia de Software pela Faculdade de Juazeiro do Norte (2010), graduação em Automática pelo Centro Federal de Educação Tecnológica do Ceará (2005). Tem experiência na área de Ciência da Computação , com ênfase em Sistemas de Computação, atuando principalmente nos seguintes temas: Desenvolvimento dos programas de computador IndSist, Store, Teacher entre outros. Desenvolvimento dos programas Mobile-Android Agenda Iterativa e Guia Cariris.Disciplinas que ministra ou ministrou no ensino superior: Linguagem de Programação, Paradigma de Programação, Estrutura de Dados, Engenharia de Software, Banco de Dados. Currículo Lattes