SQL: ALTER TABLE e DROP TABLE

Introdução

Neste artigo serão apresentado os comandos ALTER TABLE e DROP TABLE, assim como o CREATE TABLE, pertencentem a classe dos comando DDL (Data Definition Language – Linguagem de Definição de Dados) da SQL (Structured Query Language – Linguagem Estruturada de Consulta). Esses comandos são usados para alterar ou excluir uma tabelas existentes no banco de dados.

Comando ALTER TABLE

O comando ALTER TABLE é utilizado em toda a vida do banco de dados. Durante o seu projeto ele é útil para fazer ajuste no mesmo. Quando o banco de dados entra em produção, esse comando é utilizado para atender as mudanças de requisitos do domínio, pois nem sempre as novas necessidades levam a criação de uma nova tabela.

Adicionando um novo atributo na tabela

A adição de um novo atributo na tabela requer a utilização do sub-comando ADD em conjunto com o comando ALTER TABLE como mostrado na sintaxe.

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

Sintaxe:

alter table TABELA

[add ATRIBUTO TIPO [RESTRIÇÃO]]

[{, add ATRIBUTO TIPO [RESTRIÇÃO]}]

[;]

Rótulo Descrição
TABELA Nome da tabela
ATRIBUTO Nome do atributo
TIPO Tipo de dado do atributo
RESTRIÇÃO Restrição sobre o atributo ou tabela

 

Utilização:

Tendo como base o modelo lógico abaixo, iremos utilizar o comando ALTER TABLE para incluir dois novos atributos na tabela FUNCION.

FUNCION >< SETOR

Relacionamento entre as tabelas FUNCION e SETOR

alter table FUNCION
add SALARIO numeric(9,2),
add DT_NASC date;

Nesse exemplo foram adicionados os atributos (i) SALARIO do tipo numérico com tamanho 9 e precisão 2 e (ii) DT_NASC do tipo data.

Alterando o tipo de um atributo existente na tabela

Algumas vezes é necessário alterar um atributo já existente numa tabela, nesse caso serão apresentadas duas sintaxe. A primeira é utilizada pelos SGBDRs PostgreSQL e Firebird e a segunda pelo SGBDR pelo MySQL.

1ª Sintaxe:

alter table TABELA

[alter ATRIBUTO type TIPO]

[{, alter ATRIBUTO type TIPO}]

[;]

2ª Sintaxe:

alter table TABELA

[modify ATRIBUTO TIPO]

[{, modify ATRIBUTO TIPO}]

[;]

Utilização:

O exemplo abaixo irá alterar o atributo DT_NASC da tabela FUNCION de date para varchar(10).

Utilizando 1ª sintaxe

alter table FUNCION
alter DT_NASC type varchar(10);

Utilizando 2ª sintaxe

alter table FUNCION
modify DT_NASC varchar(10);

Excluindo um atributo da tabela

A exclusão do atributo de uma tabela não é um procedimento comum, e só deve ser executado se for realmente necessário e com cuidado redobrado, pois ao excluir o atributo, todos os dados contidos no mesmo serão perdidos.

Sintaxe:

alter table TABELA

[drop ATRIBUTO]

[{, drop ATRIBUTO}]

[;]

Utilização:

O comando abaixo irá excluir o atributo DT_NASC da tabela FUNCION.

alter table FUNCION
drop DT_NASC;

Adicionando chave primária da tabela

O comando ALTER TABLE também pode ser usado para adicionar uma chave primária numa tabela que foi criada anteriormente.

Sintaxe:

alter table TABELA

add primary key( ATRIBUTO [, ATRIBUTO] )

[;]

Utilização:

alter table FUNCION
add primary key(ID_FUNCION);

Adicionando chave estrangeira da tabela

Assim como é possível utilizar o comando ALTER TABLE para adicionar a chave primária de uma tabela criada anteriormente, o mesmo comando permite adicionar uma ou mais chaves estrangeiras.

Sintaxe:

alter table TABELA

add foreign key(ATRIBUTO) references TABELA_FK (ATRIBUTO_FK) ) [RESTRIÇÃO]

[{, add foreign key(ATRIBUTO) references TABELA_FK (ATRIBUTO_FK) ) [RESTRIÇÃO]}]

[;]

Utilização:

alter table FUNCION
add foreign key(ID_SETOR) references SETOR(ID_SETOR) on delete cascade;

Comando DROP TABLE

O comando DROP TABLE é utilizado para excluir uma tabela do banco de dados. Este comando requer muita cautela e só deve ser utilizado se for muito necessário, pois ao excluir uma tabela, todos os dados armazenados na tabela serão perdidos.

Sintaxe:

drop table TABELA[;]

Utilização:

drop table FUNCION;

Conclusão

Este artigo abordou os aspectos fundamentais dos comandos ALTER TABLE e DROP TABLE. Embora o assunto não tenha sido esgotado, o apresentado serve como base sólida para as modificações necessária em tabelas já existente nos SGBDRs. 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

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