Resumo : neste tutorial, você aprenderá como usar a ALTER TABLE
instrução MySQL para adicionar uma coluna, alterar uma coluna, renomear uma coluna, eliminar uma coluna e renomear uma tabela.
Configurando uma tabela de exemplo
Vamos criar uma tabela com o nome vehicles
da demonstração:
CREATE TABLE vehicles (
vehicleId INT,
year INT NOT NULL,
make VARCHAR(100) NOT NULL,
PRIMARY KEY(vehicleId)
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL ALTER TABLE – Adicionar colunas a uma tabela
A ALTER TABLE ADD
instrução permite adicionar uma ou mais colunas a uma tabela.
1) Adicione uma coluna a uma tabela
Para adicionar uma coluna a uma tabela, você usa a ALTER TABLE ADD
sintaxe:
ALTER TABLE table_name
ADD
new_column_name column_definition
[FIRST | AFTER column_name]
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
table_name
– especifique o nome da tabela à qual deseja adicionar uma nova coluna ou colunas após asALTER TABLE
palavras-chave.new_column_name
– especifique o nome da nova coluna.column_definition
– especifique o tipo de dados, tamanho máximo e restrição de coluna da nova colunaFIRST | AFTER column_name
especifique a posição da nova coluna na tabela. Você pode adicionar uma coluna após uma coluna existente (ATER column_name
) ou como a primeira coluna (FIRST
). Se você omitir esta cláusula, a coluna será anexada ao final da lista de colunas da tabela.
O exemplo a seguir usa a ALTER TABLE ADD
instrução para adicionar uma coluna no final da vehicles
tabela:
ALTER TABLE vehicles
ADD model VARCHAR(100) NOT NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Esta instrução mostra a lista de colunas da vehicles
tabela:
DESCRIBE vehicles;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Conforme mostrado claramente na saída, a coluna model
foi adicionada à vehicles
tabela.
2) Adicione várias colunas a uma tabela
Para adicionar várias colunas a uma tabela, use a seguinte forma de ALTER TALE ADD
instrução:
ALTER TABLE table_name
ADD new_column_name column_definition
[FIRST | AFTER column_name],
ADD new_column_name column_definition
[FIRST | AFTER column_name],
...;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por exemplo, esta instrução adiciona duas colunas color
e note
à vehicles
tabela:
ALTER TABLE vehicles
ADD color VARCHAR(50),
ADD note VARCHAR(255);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Esta declaração mostra a nova estrutura da vehicles
tabela:
DESCRIBE vehicles;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL ALTER TABLE – Modificar colunas
1) Modifique uma coluna
Aqui está a sintaxe básica para modificar uma coluna em uma tabela:
ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name];
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
É uma boa prática visualizar os atributos de uma coluna antes de modificá-la.
Suponha que você queira alterar a note
coluna para uma NOT NULL
coluna com no máximo 100 caracteres.
Primeiro, mostre a lista de colunas da vehicles
tabela:
DESCRIBE vehicles;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Em seguida, modifique a note
coluna:
ALTER TABLE vehicles
MODIFY note VARCHAR(100) NOT NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por fim, mostre a lista de colunas da vehicles
tabela para verificar a alteração:
DESCRIBE vehicles;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Modifique várias colunas
A instrução a seguir permite modificar várias colunas:
ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name],
MODIFY column_name column_definition
[ FIRST | AFTER column_name],
...;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Primeiro, mostre as colunas atuais da vehicles
tabela:
Segundo, use a ALTER TABLE MODIFY
instrução para modificar múltiplas colunas:
ALTER TABLE vehicles
MODIFY year SMALLINT NOT NULL,
MODIFY color VARCHAR(20) NULL AFTER make;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo:
- Primeiro, modifique o tipo de dados da
year
coluna deINT
paraSMALLINT
- Segundo, modifique a
color
coluna definindo omaximum
comprimento como20
, removendo aNOT NULL
restrição e alterando sua posição para aparecer após amake
coluna.
Terceiro, mostre a nova lista de colunas da vehicles
tabela para verificar as modificações:
MySQL ALTER TABLE – Renomear uma coluna em uma tabela
Para renomear uma coluna, você usa a seguinte instrução:
ALTER TABLE table_name
CHANGE COLUMN original_name new_name column_definition
[FIRST | AFTER column_name];
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome da tabela à qual a coluna pertence.
- Segundo, especifique o nome da coluna e o novo nome seguido pela definição da coluna após as
CHANGE COLUMN
palavras-chave. - Terceiro, use a opção
FIRST
ouAFTER column_name
para determinar a nova posição da coluna.
O exemplo a seguir usa a ALTER TABLE CHANGE COLUMN
instrução para renomear a coluna note
para vehicleCondition
:
ALTER TABLE vehicles
CHANGE COLUMN note vehicleCondition VARCHAR(100) NOT NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Vamos revisar a lista de colunas da vehicles
tabela:
DESCRIBE vehicles;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL ALTER TABLE – Eliminar uma coluna
Para eliminar uma coluna em uma tabela, você usa a ALTER TABLE DROP COLUMN
instrução:
ALTER TABLE table_name
DROP COLUMN column_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome da tabela na qual deseja colocar uma coluna após as
ALTER TABLE
palavras-chave. - Segundo, especifique o nome da coluna que deseja eliminar após as
DROP COLUMN
palavras-chave.
Este exemplo mostra como remover a vehicleCondition
coluna da vehicles
tabela:
ALTER TABLE vehicles
DROP COLUMN vehicleCondition;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
MySQL ALTER TABLE – Renomear tabela
Para renomear uma tabela , você usa a ALTER TABLE RENAME TO
instrução:
ALTER TABLE table_name
RENAME TO new_table_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome da tabela que deseja renomear após as
ALTER TABLE
palavras-chave. - Segundo, especifique o novo nome da tabela após as
RENAME TO
palavras-chave.
Este exemplo renomeia a vehicles
tabela para cars
:
ALTER TABLE vehicles
RENAME TO cars;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu como usar a ALTER TABLE
instrução MySQL para adicionar uma coluna, modificar uma coluna, renomear uma coluna, eliminar uma coluna e renomear uma tabela.