Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Redes de Computadores / Conceitos de Banco de Dados / Aula
Uma boa prática de programação é ter apenas colunas necessárias nas tabelas de um banco de dados. Atributos (ou colunas) desnecessários ocupam espaço de armazenamento e provocam uma redução no tempo de resposta a consultas no seu SGBD.
Os atributos desnecessários em tabelas podem ser eliminados com o comando ALTER TABLE juntamente com o comando DROP COLUMN. Mas, atenção! Utilize o comando DROP COLUMN com cuidado, pois ele irá excluir todos os dados contidos na coluna em questão. A sintaxe do comando ALTER para excluir colunas em tabelas é descrita no quadro a seguir.
mysql> ALTER TABLE nome_da_tabela DROP COLUMN atributo;
Vamos praticar o comando ALTER TABLE com DROP COLUMN excluindo os atributos fil_direcao e fil_atores na tabela filmes?
mysql> ALTER TABLE filmes DROP COLUMN fil_direcao;
mysql> ALTER TABLE filmes DROP COLUMN fil_atores;
Observe com cuidado as exclusões das colunas fil_direcao e fil_atores na Figura 4. Percebeu que na última exclusão não foi colocado o termo COLUMN (coluna)? No MySQL, o termo COLUMN é opcional.
É possível ainda modificar colunas existentes em uma tabela. Você pode alterar, por exemplo, a definição da coluna ou mesmo o nome da coluna.
Para modificar o nome de uma coluna, devemos utilizar o comando CHANGE COLUMN. A sintaxe para modificar uma coluna é apresentada no quadro a seguir:
mysql> ALTER TABLE nome_da_tabela CHANGE COLUMN nome_atual novo_nome tipo;
Vejamos esse comando na prática:
mysql> ALTER TABLE clientes CHANGE COLUMN cli_email cli_endereco_eletronico
varchar(80);
No exemplo acima, modificamos o nome do campo cli_email da tabela clientes para cli_endereco_eletronico e alteramos ainda a definição da coluna de varchar(50) para varchar(80).
E se quiséssemos apenas modificar a definição de uma coluna? Será que é necessário modificar também o nome da coluna? A resposta é não. O comando MODIFY COLUMN permite modificar a definição de uma coluna sem precisarmos alterar o nome da coluna.
Veja a sintaxe:
mysql> ALTER TABLE nome_da_tabela MODIFY COLUMN nome_da_coluna tipo;
Vejamos um exemplo prático para que seja possível entender melhor o comando acima:
mysql> ALTER TABLE clientes MODIFY COLUMN cli_nome varchar(50);
No exemplo acima, alteramos a definição da coluna cli_nome da tabela clientes. Trocamos de varchar(30) para varchar(50).
A Figura 5 abaixo mostra como ficou a tabela clientes após modificarmos as colunas cli_nome e cli_email.
Versão 5.3 - Todos os Direitos reservados