ORACLE

 

ALTERAR TABELAS

 

A declaração ALTER TABLE no Oracle permite que seja possível alterar uma tabela de várias maneiras, porém nesse material, a modificação tratará apenas de adicionar uma coluna, modificar uma coluna, remover uma coluna, renomear uma tabela.

 

Para os exemplos a seguir, será criada uma tabela chamada CLIENTE com as colunas codigoCliente sendo um número que identifica o cliente e nomeCliente para armazenar o nome:


CREATE TABLE CLIENTE
(
  codigoCliente NUMBER(13) NOT NULL,
  nomeCliente VARCHAR2(30) NOT NULL,
  sobrenomeCliente NUMBER(10) NOT NULL,
  CONSTRAINT PK_CLIENTE PRIMARY KEY (codigoCliente)
);
              

Para isso, será utilizado o recurso "Comandos SQL" da interface Oracle APEX, copie e execute o script acima, após isso, confira o resultado da criação da tabela na imagem abaixo:


 

Modificar o tipo de dado de uma coluna na tabela

Note que a coluna sobrenomeCliente deveria ser do tipo de dado VARCHAR2, porém ela foi criada do tipo NUMBER, propositalmente. Dessa forma, é necessário alterar o tipo de dado da coluna em questão.

Para isso, copie e cole o script abaixo e mande executar:


ALTER TABLE CLIENTE
MODIFY sobrenomeCliente VARCHAR2(30);

Observe a confirmação da alteração logo abaixo:

 

Adicionar uma coluna na tabela

Para adicionar uma coluna na tabela, a sintaxe da declaração ALTER TABLE é:

 
ALTER TABLE nome_tabela
  ADD nome_coluna tipo_dado;

nome_tabela: é o nome da tabela a ser modificada do banco de dados.

 

nome_coluna: é o nome da coluna a ser modificada do banco de dados.

 

tipo_dado: é o tipo de dado da nova coluna.

 

Exemplo: Adicionando uma nova coluna na tabela CLIENTE.

ALTER TABLE CLIENTE
    ADD idade NUMBER(2);

Copie e execute o script acima no APEX e confira a mensagem de alteração da tabela, como ilustra abaixo:


 

Com isso, a tabela CLIENTE terá uma nova coluna chamada idade.

 

Adicionar múltiplas colunas na tabela

Para adicionar várias colunas na tabela, a sintaxe da declaração ALTER TABLE é:

 
ALTER TABLE nome_tabela(
  ADD(coluna1 tipo_dado,
  coluna2 tipo_dado,
  ...,
  coluna_n tipo_dado
);

nome_tabela: é o nome da tabela a ser modificada do banco de dados.

 

coluna1, coluna2, ... coluna_n: é o nome da coluna a ser modificada do banco de dados.

 

tipo_dado: é o tipo de dado da nova coluna.

 

Exemplo: Adicionando duas novas colunas na tabela CLIENTE:

 
ALTER TABLE CLIENTE
  ADD(
    sexo VARCHAR2(1),
    email VARCHAR2(50)
  );

Copie e execute o script acima no APEX e confira a mensagem de alteração da tabela, como ilustra abaixo:


 

Com isso, a tabela CLIENTE terá duas novas colunas chamadas sexo e email.

 

Para conferir essas mudanças, utilize a instrução DESCRIBE da seguinte maneira:


 DESCRIBE CLIENTE;

Será mostrado em seu navegador a ilustração da tabela CLIENTE com as novas colunas idade, sexo e email:


 

Modificar uma coluna na tabela

Note que ao acrescentar as colunas idade, sexo e email não foi inserido em sua sintaxe a instrução NOT NULL e por isso, na descrição da tabela, essas colunas t≖m um símbolo de marcação informando que são campos anuláveis. Sendo assim, é possível modificar uma coluna acrescentando a informação de que a coluna não pode ser nula.

Para modificar uma coluna na tabela, a sintaxe da declaração ALTER TABLE é:

 
ALTER TABLE nome_tabela
  MODIFY nome_coluna tipo_dado;

Exemplo: Modificando uma nova coluna na tabela CLIENTE:

 
ALTER TABLE CLIENTE
  MODIFY idade NUMBER(3) NOT NULL;

Observe a mensagem de sucesso após executar o script acima no APEX:


 

Com isso, a tabela CLIENTE terá a coluna idade modificada para 3 caracteres numéricos e não nula.

 

Modificar múltiplas colunas na tabela

Para modificar várias coluna na tabela, a sintaxe da declaração ALTER TABLE é:

 
ALTER TABLE nome_tabela
  MODIFY(
    coluna1 tipo_dado,
    coluna2 tipo_dado,
    ...
    coluna_n tipo_dado
  );

Exemplo: Modificando duas colunas na tabela CLIENTE:

 
ALTER TABLE CLIENTE
  MODIFY(
    sexo VARCHAR2(1) NOT NULL,
    email VARCHAR2(30) NOT NULL
  );

Ao copiar e executar o script acima, o APEX irá retornar uma mensagem de sucesso:


 

Com isso, a tabela CLIENTE terá as colunas sexo e email como sendo não nulas, além disso, a coluna email terá 30 caracteres ao invés de 50 como estava anteriormente.

 

Após essas alterações, observe a estrutura da tabela ao utilizar a instrução DESCRIBE:


  DESCRIBE CLIENTE;

 

Remover uma coluna na tabela

Para remover uma coluna na tabela, a sintaxe da declaração ALTER TABLE é:

 
ALTER TABLE nome_tabela
  DROP COLUMN nome_coluna tipo_dado;

Exemplo: Removendo uma nova coluna na tabela CLIENTE:

 
ALTER TABLE CLIENTE
  DROP COLUMN sexo;

Observe a mensagem de sucesso ao executar o script acima:


 

Com isso, a tabela CLIENTE terá a coluna sexo removida do banco de dados.

 

Renomear coluna na tabela

Para renomear uma coluna na tabela, a sintaxe da declaração ALTER TABLE é:

 
ALTER TABLE nome_tabela
  RENAME COLUMN nome_antigo TO nome_novo;

nome_tabela: é o nome da tabela a ser modificada do banco de dados.

 

nome_antigo: é o nome antigo da coluna a ser modificada do banco de dados.

 

nome_novo: é o novo nome da coluna a ser modificada do banco de dados.

 

Exemplo: Renomeando uma nova coluna na tabela CLIENTE:

 
ALTER TABLE CLIENTE
  RENAME COLUMN nomeCliente TO nome_c;

Observe a mensagem de sucesso ao executar o script acima:


 

Com isso, a tabela CLIENTE terá a coluna nomeCliente renomeada para nome_c.

 

Renomear tabela

Para renomear uma tabela, a sintaxe da declaração ALTER TABLE é:

 
ALTER TABLE nome_tabela
  RENAME TO nome_novo_tabela;

nome_tabela: é o nome da tabela a ser modificada do banco de dados.

 

nome_novo_tabela: é o novo nome da tabela a ser modificada do banco de dados.

 

Exemplo: Renomeando a tabela CLIENTE:

 
ALTER TABLE CLIENTE
  RENAME TO CONTATO;

Observe a mensagem de sucesso ao executar o script acima:


 

Com isso, a tabela CLIENTE será renomeada para CONTATO.

Verifique as últimas alterações com a utilização da intrução DESCRIBE.


 DESCRIBE CONTATO;

Observe a mensagem de sucesso ao executar o script acima:


 
Com intuito de se conhecer mais sobre a instrução ALTER, sugere-se verificar o conteúdo extra para ajudar no entendimento e aperfeiçoamento deste conteúdo, o link na imagem é da página oficial da Oracle e, portanto está no seu idioma oficial, o inglês.

 

Atividade de Fixação

 

No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como está sua compreensão sobre o mesmo, são sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento. Boa revisão sobre os mesmos!!