Em SQL, muitas vezes são necessárias modificações estruturais em um banco de dados, como renomear tabelas ou colunas, adicionar novas colunas ou alterar tipos de dados. O comando ALTER TABLE permite que essas alterações sejam feitas de forma eficiente sem afetar os dados existentes. É um comando essencial para gerenciar e atualizar esquemas de banco de dados à medida que os requisitos do aplicativo evoluem.
Exemplo: Primeiro, vamos criar um exemplo de tabela Student para demonstrar o comando ALTER:
Consulta:
ALTER TABLE students
RENAME TO learners;
Saída:
Sintaxe para comando ALTER
Aqui estão os formatos de sintaxe comuns para usar o comando ALTER TABLE:
1. Renomeando uma tabela
ALTER TABLE nome_tabela
RENOMEAR PARA new_table_name;
2. Renomeando uma coluna
ALTER TABLE nome_tabela
RENOMEAR COLUNA nome_coluna_antiga PARA nome_coluna_nova;
3. Adicionando uma nova coluna
ALTER TABLE nome_tabela
ADICIONAR tipo de dados nome_coluna;matemática.pow java
ALTER TABLE nome_tabela
MODIFICAR COLUMN nome_da_coluna novo_datatype;
Exemplos de comando ALTER em SQL
Abaixo estão exemplos práticos para nos ajudar a entender como usar o comando ALTER de forma eficaz em vários cenários. Esses exemplos incluem renomear tabelas ou colunas, adicionar novas colunas ou mudando coluna tipos de dados.
1. Crie uma tabela de amostra
Primeiro vamos criar um exemplo de Aluno tabela para demonstrar o ALTER comando:
CREATE TABLE Student (
id INT PRIMARY KEY
name VARCHAR(50)
age INT
email VARCHAR(50)
phone VARCHAR(20)
);
Vamos inserir alguns dados e então realizar a operação ALTER para entender melhor sobre o comando alter.
INSERT INTO Student (id name age email phone)
VALUES
(1 'Amit' 20 '[email protected]' '9999999999')
(2 'Rahul' 22 '[email protected]' '8888888888')
(3 'Priya' 21 '[email protected]' '7777777777')
(4 'Sonia' 23 '[email protected]' '6666666666')
(5 'Kiran' 19 '[email protected]' '5555555555');
Saída
Exemplo 1: Renomear uma coluna
Altere o nome da coluna para FIRST_NAME na tabela Student. Para alterar o nome da coluna da tabela existente, temos que usar a palavra-chave Column antes de escrever o nome da coluna existente para alterar.
Sintaxe
ALTER TABLE Aluno RENAME COLUMN Column_NAME TO FIRST_NAME;
Consulta:
ALTER TABLE Student RENAME Column name TO FIRST_NAME;Saída
SaídaExemplo 2: Renomear uma tabela
Neste exemplo, queremos renomear a tabela deStudentparaStudent_Detailsusando oALTER TABLEcomando tornando o nome mais descritivo e relevante para o seu conteúdo.
Consulta:
ALTER TABLE Student RENAME TO Student_Details;Saída
Exemplo 3: Adicionar uma nova coluna
Para adicionar uma nova coluna à tabela existente, primeiro precisamos selecionar a tabela com o comando ALTER TABLE nome_da_tabela e então escreveremos o nome da nova coluna e seu tipo de dados com ADD nome_da_coluna tipo de dados. Vamos dar uma olhada abaixo para entender melhor.
Sintaxe
ALTER TABLE nome_tabela
ADICIONAR tipo de dados nome_coluna;método java
Consulta:
ALTER TABLE Student ADD marks INT;Saída
No exemplo ophonecoluna é atualizada deVARCHAR(20)paraBIGINT armazenar dados numéricos de forma mais eficiente e garantir integridade de dados para números de telefone sem caracteres desnecessários.
Sintaxe
ALTER TABLE nome_tabela
MODIFICAR COLUMN nome_da_coluna novo_datatype;
Consulta:
ALTER TABLE Student_Details
MODIFY COLUMN phone BIGINT;
Saída
string comparar com java
| eu ia | nome | idade | telefone | |
|---|---|---|---|---|
| 1 | O que | 20 | [email protected] | 9999999999 |
| 2 | Raul | 22 | [email protected] | 8888888888 |
| 3 | Priya | 21 | [email protected] | 7777777777 |
| 4 | Sônia | 23 | [email protected] | 6666666666 |
| 5 | A chamada | 19 | [email protected] | 5555555555 |
Explicação :
- A coluna phone agora possui um tipo de dados BIGINT adequado para armazenar grandes valores numéricos.
- Os dados existentes permanecem inalterados, mas são armazenados como números inteiros em vez de cordas.
Casos de uso adicionais do comando ALTER
1. Removendo uma coluna : Em alguns casos, poderemos precisar remover uma coluna. Para fazer isso você pode usar a sintaxe DROP COLUMN:
ALTER TABLE Aluno_Detalhes
Marcas de COLUNA DE QUEDA;
Este comando exclui totalmente a coluna de marcas da tabela
2. Alterando o valor padrão de uma coluna : Também podemos modificar o valor padrão de uma coluna usando a cláusula SET DEFAULT:
ALTER TABLE Aluno_Detalhes
ALTER COLUMN idade SET DEFAULT 18;
3. Renomeando uma tabela ou coluna em bancos de dados diferentes : observe que a sintaxe SQL pode variar entre diferentes sistemas de banco de dados. Veja como renomearíamos uma tabela ou coluna no MySQL MariaDB e Oráculo :
- MySQL/MariaDB : a sintaxe para renomear uma coluna é semelhante, mas você também deve usar o comando CHANGE COLUMN para renomear uma coluna:
ALTER TABLE Aluno
CHANGE COLUMN old_column_name tipo de dados new_column_name;
- Oráculo : o Oracle suporta a sintaxe RENAME COLUMN, mas requer uma sintaxe diferente para renomear uma tabela:
Criar questionárioALTER TABLE Aluno RENAME COLUMN old_column_name TO new_column_name;