Introdução ao comando SQL Alter
O SQL (Structured Query Language) é usado para executar operações em bancos de dados e tabelas usando vários comandos SQL, como DDL (Data Definition Language), DML (Data Manipulation Language), DCL (Data Control Language) e TCL (Transaction Control Language). No DDL, usamos comandos como CREATE, DROP, ALTER etc. para criar e modificar a estrutura do banco de dados ou os objetos no banco de dados. O comando ALTER é usado para adicionar, modificar ou excluir as colunas em uma tabela. Neste tópico, vamos aprender sobre o comando SQL Alter.
Sintaxe
O comando ALTER pode ser usado para adicionar colunas a uma tabela existente, soltar uma coluna de uma tabela, renomear uma coluna existente e alterar o tipo de dados de uma coluna. Abaixo está a sintaxe usada para as diferentes operações que podem ser executadas usando o comando Alter.
A sintaxe para adicionar uma nova coluna a uma tabela existente é a seguinte:
ALTER TABLE table_name ADD COLUMN column_name datatype;
A sintaxe para adicionar uma coluna com um valor padrão a uma tabela existente é a seguinte:
ALTER TABLE table_name ADD COLUMN column_name datatype DEFAULT 'value';
A sintaxe para alterar o tipo de dados de uma coluna existente, conforme abaixo:
ALTER TABLE table_name MODIFY column_name datatype;
A sintaxe para renomear uma coluna como abaixo:
ALTER TABLE table_name RENAME old_column_name To new_column_name;
A sintaxe para soltar uma coluna como abaixo:
ALTER TABLE table_name DROP column_name;
A sintaxe para adicionar a restrição NOT NULL a uma coluna, como abaixo:
ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
Como usar o comando SQL Alter com exemplos?
Para entender as operações do comando ALTER, consideremos a tabela abaixo 'EMPREGADO' como um exemplo. A tabela 'EMPREGADO' já foi criada e, com o uso do comando Alter, muitas modificações, como adicionar a coluna, renomear uma coluna, soltar uma coluna etc., podem ser feitas conforme descrito abaixo.
Empregado tabela como abaixo:
EU IRIA | NOME | ERA | SALÁRIO |
134 | Sonal | 24 | 23000, 00 |
145 | Nikhil | 27 | 28990.00 |
167 | Soham | 26 | 25000, 00 |
234 | Yash | 32. | 35000, 00 |
189 | Ritu | 25 | 29000, 00 |
190 | Rajesh | 28. | 29000, 00 |
Adicionando uma única coluna à tabela EMPLOYEE como abaixo
ALTER TABLE EMPLOYEE ADD COLUMN DOB DATE;
O comando ALTER acima adicionará a coluna 'DOB' à tabela existente 'EMPLOYEE'. Aqui, a coluna 'DOB' terá um valor nulo para cada linha na tabela existente.
Podemos ver o resultado usando a instrução abaixo:
Select * from EMPLOYEE;
EU IRIA | NOME | ERA | SALÁRIO | DOB |
134 | Sonal | 24 | 23000, 00 | nulo |
145 | Nikhil | 27 | 28990.00 | nulo |
167 | Soham | 26 | 25000, 00 | nulo |
234 | Yash | 32. | 35000, 00 | nulo |
189 | Ritu | 25 | 29000, 00 | nulo |
190 | Rajesh | 28. | 29000, 00 | nulo |
Adicionando uma coluna com o valor padrão
Vamos supor que os funcionários tenham ingressado no mesmo dia, para que a coluna Data de ingresso possa ter o mesmo valor padrão para todos os funcionários.
ALTER TABLE EMPLOYEE ADD COLUMN DOJ DATE DEFAULT '1990-08-09';
A instrução ALTER acima adicionará a coluna 'DOJ' com um valor padrão '1990-08-09' à tabela EMPLOYEE. Podemos ver o resultado do comando acima usando a instrução abaixo:
Select * from EMPLOYEE;
EU IRIA | NOME | ERA | SALÁRIO | DOJ |
134 | Sonal | 24 | 23000, 00 | 1990-08-09 |
145 | Nikhil | 27 | 28990.00 | 1990-08-09 |
167 | Soham | 26 | 25000, 00 | 1990-08-09 |
234 | Yash | 32. | 35000, 00 | 1990-08-09 |
189 | Ritu | 25 | 29000, 00 | 1990-08-09 |
190 | Rajesh | 28. | 29000, 00 | 1990-08-09 |
Renomeando uma coluna existente
Com o uso do comando abaixo, podemos renomear a coluna 'ID' da tabela 'EMPLOYEE' existente para 'EMP_ID'.
ALTER TABLE EMPLOYEE rename ID to EMP_ID;
Podemos ver o resultado do comando acima pela instrução abaixo:
Select * from EMPLOYEE;
EMP_ID | NOME | ERA | SALÁRIO | DOJ |
134 | Sonal | 24 | 23000, 00 | 1990-08-09 |
145 | Nikhil | 27 | 28990.00 | 1990-08-09 |
167 | Soham | 26 | 25000, 00 | 1990-08-09 |
234 | Yash | 32. | 35000, 00 | 1990-08-09 |
189 | Ritu | 25 | 29000, 00 | 1990-08-09 |
190 | Rajesh | 28. | 29000, 00 | 1990-08-09 |
Descartando uma coluna da tabela existente
ALTER TABLE EMPLOYEE DROP COLUMN DOJ;
O comando acima eliminará a coluna 'DOJ' da tabela 'EMPLOYEE'.
Podemos ver os resultados pela declaração abaixo:
Select * from EMPLOYEE;
EMP_ID | NOME | ERA | SALÁRIO |
134 | Sonal | 24 | 23000, 00 |
145 | Nikhil | 27 | 28990.00 |
167 | Soham | 26 | 25000, 00 |
234 | Yash | 32. | 35000, 00 |
189 | Ritu | 25 | 29000, 00 |
190 | Rajesh | 28. | 29000, 00 |
Adicionando restrição NOT NULL a uma coluna
Aqui a tabela 'EMPREGADO' já está criada e se queremos adicionar uma restrição NOT NULL à coluna 'SALARY', podemos fazê-lo como abaixo.
ALTER TABLE EMPLOYEE MODIFY SALARY DECIMAL(18, 2) NOT NULL;
Modificando o tipo de dados de uma coluna
A instrução abaixo pode ser usada para modificar o tipo de dados de uma coluna existente, como abaixo:
ALTER TABLE EMPLOYEE MODIFY NAME CHAR(50);
Vantagens
Abaixo estão as vantagens de usar o comando Alter:
- O comando Alter é muito útil quando queremos modificar o banco de dados ou tabelas contidas em um banco de dados.
- Com a ajuda do comando Alter, muitas modificações podem ser feitas se qualquer alteração no design do banco de dados for necessária sem perturbar o banco de dados existente ou os objetos relacionados a ele.
- Podemos adicionar restrições a uma coluna mesmo após a criação da tabela.
Conclusão
A necessidade do comando ALTER é útil quando queremos alterar ou modificar o banco de dados existente, se algum requisito de negócios surgir após a conclusão do design. Podemos modificar facilmente o banco de dados ou as tabelas nele, usando o comando Alter. Mas os desenvolvedores devem verificar com as permissões ALTER fornecidas para os usuários enquanto usam o comando Alter para tabelas do banco de dados. Além disso, quando usamos o comando Alter para adicionar chave primária, devemos lembrar que a coluna da chave primária já deve ter sido criada, ou seja, quando a tabela foi criada para não conter valores nulos.
Artigos recomendados
Este é um guia para o SQL Alter Command. Aqui discutimos como usar o SQL adicionando os comandos Alter com exemplos e vantagens. Você também pode consultar o seguinte artigo para saber mais -
- Ferramentas de Gerenciamento SQL
- Funções de seqüência de caracteres T-SQL
- O que é injeção de SQL?
- Como conectar o banco de dados ao MySQL?