Nesse post iremos ver como acrescentar uma coluna em uma tabela já existente em nosso banco de dados. Não precisa criar uma tabela nova!

Adicionar uma coluna em uma tabela existente no SQL é importante, pois permite modificar a estrutura da tabela para incluir novos dados sem a necessidade de recriar toda a tabela. Isso oferece flexibilidade e eficiência na gestão dos dados.
Para fazer isso, usamos o seguinte comando SQL:
ALTER TABLE nometabela ADD nome_coluna tipo AFTER coluna_qualquer_existente;
- ALTER TABLE = altere a tabela
- ADD = adicione
- tipo = o tipo de dados que serão armazenados na coluna. Os tipos de colunas em SQL incluem inteiros, decimais, strings, datas, binários, entre outros. Cada tipo é projetado para armazenar um tipo específico de dado. Podemos listar como tipo: INTEGER (para números inteiros), DECIMAL (para números decimais), VARCHAR (para strings de comprimento variável), DATE (para datas), BINARY (para dados binários), entre outros.
- AFTER = significa “depois”. A nova coluna será criada logo após outra que colocarmos aqui.
Por exemplo, se quiser adicionar uma coluna chamada de idade à tabela meusDados. Idade será do tipo inteiro (int).
ALTER TABLE meusDados ADD idade int AFTER nome;
vejamos outro exemplo onde adiciono o campo id em uma tabela chamada registros.
ALTER TABLE registros
ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY FIRST;
Exemplos de adição de nova coluna a uma tabela existente
Segue alguns exemplos de linhas SQL para criação de uma nova coluna em uma tabela já existente em nosso banco de dados.
Substitua nome_da_tabela
pelo nome real da tabela à qual você deseja adicionar a coluna, e ajuste o nome e tipo de dados da coluna conforme necessário.
É importante fazer esses procedimentos em ambiente de teste. Faça backup sempre que possível.
#1 Adicionar uma coluna com tipo de dados VARCHAR:
ALTER TABLE nome_da_tabela ADD COLUMN nova_coluna VARCHAR(255);
#2 Adicionar uma coluna com tipo de dados INT:
ALTER TABLE nome_da_tabela ADD COLUMN nova_coluna INT;
#3 Adicionar uma coluna com tipo de dados DATE e valor padrão:
ALTER TABLE nome_da_tabela ADD COLUMN nova_coluna DATE DEFAULT '2023-01-01';
#4 Adicionar uma coluna com tipo de dados DECIMAL e restrição NOT NULL:
ALTER TABLE nome_da_tabela ADD COLUMN nova_coluna DECIMAL(10, 2) NOT NULL;
#5 Adicionar uma coluna com tipo de dados BOOLEAN:
ALTER TABLE nome_da_tabela ADD COLUMN nova_coluna BOOLEAN;
#6 Adicionar uma coluna com tipo de dados ENUM:
ALTER TABLE nome_da_tabela ADD COLUMN nova_coluna ENUM('valor1', 'valor2', 'valor3');
#7 Adicionar uma coluna com tipo de dados TIMESTAMP com valor padrão atual:
ALTER TABLE nome_da_tabela ADD COLUMN nova_coluna TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
Dica: veja mais posts sobre banco de dados clicando aqui.
Como ver o resultado?
Você poderá usar o comando describe nome_da_tabela
describe nome_da_tabela;
Substitua nome_da_tabela pelo nome da sua tabela.
Se você quer ver as tabelas existentes em seu banco de dados, use show tables;
show tables;
Há alguma opção além de AFTER?
Não! After que dizer depois e não há nada como antes ou before. Isso porque, na prática, a ordem das colunas pode não ter um impacto significativo no desempenho ou na funcionalidade da maioria dos sistemas de gerenciamento de banco de dados (SGBD).
A cláusula AFTER
é comumente utilizada para especificar a posição relativa de uma nova coluna em relação às colunas existentes em uma tabela. No entanto, não existe uma cláusula BEFORE
equivalente para essa finalidade em SQL padrão.
O que acontece se não usar a cláusula AFTER ao adicionar uma nova coluna na tabela?
Irá depender de qual sistema de banco de dados estiver usando. Por exemplo, nesses sistemas de banco de dados, a nova coluna é adicionada ao final quando não especificamos AFTER em sua criação:
- MySQL / MariaDB
- PostgreSQL
- SQL Server (Microsoft)
- Oracle Database