PostgreSQL Tabela ALTER: ADICIONAR Coluna, Renomear Exemplos de Coluna/Tabela

O comando ALTER TABLE รฉ usado para alterar a estrutura de uma PostgreSQL mesa. ร‰ o comando usado para alterar as colunas da tabela ou o nome da tabela.

Sintaxe

Aqui estรก a sintaxe para o PostgreSQL Comando ALTER TABLE:

ALTER TABLE table-name action;

O parรขmetro table-name รฉ o nome da tabela que vocรช precisa alterar.

O parรขmetro action รฉ a aรงรฃo que vocรช precisa executar, como alterar o nome de uma coluna, alterar o tipo de dados de uma coluna, etc.

Descriรงรฃo

O comando ALTER TABLE altera a definiรงรฃo de uma tabela existente. Leva os seguintes subformulรกrios:

  • ADICIONE COLUNA: usa sintaxe semelhante ao comando CREATE TABLE para adicionar uma nova coluna a uma tabela.
  • COLUNA DE DESCARGA: para quedaping uma coluna da tabela. As restriรงรตes e os รญndices impostos ร s colunas tambรฉm serรฃo removidos.
  • DEFINIR/DEIXAR PADRรƒO: use para remover o valor padrรฃo de uma coluna. No entanto, a alteraรงรฃo sรณ se aplicarรก aos prรณximos Instruรงรตes INSERT.
  • SET/DROP NรƒO NULO: altera se uma coluna permitirรก nulos ou nรฃo.
  • DEFINIR ESTATรSTICAS: Para definir o alvo de coleta de estatรญsticas para cada coluna para operaรงรตes ANALYZE.
  • DEFINIR ARMAZENAMENTO: Para definir o modo de armazenamento de uma coluna. Isso determinarรก onde a coluna serรก mantida, seja in-line ou em uma tabela suplementar.
  • CONJUNTO SEM OIDS: Use para remover a coluna antiga da tabela.
  • RENOMEAR: para alterar o nome da tabela ou o nome da coluna.
  • ADICIONAR tabela_constraint: Use para adicionar uma nova restriรงรฃo a uma tabela. Ele usa a mesma sintaxe que CRIAR TABELA comando.
  • QUEDA DE RESTRIร‡รƒO: Usar para soltarping uma restriรงรฃo de tabela.
  • PROPRIETรRIO: para alterar o proprietรกrio de uma tabela, sequรชncia, รญndice ou visualizaรงรฃo para um determinado usuรกrio.
  • CLUSTER: para marcar uma tabela a ser usada para realizar futuras operaรงรตes de cluster.

Modificando uma coluna

Uma coluna pode ser modificada de diversas maneiras. Tais modificaรงรตes podem ser feitas utilizando o comando ALTER TABLE. Vamos discutir isso:

Adicionando uma nova coluna

Para adicionar uma nova coluna a um PostgreSQL tabela, o comando ALTER TABLE รฉ usado com a seguinte sintaxe:

ALTER TABLE table-name
  ADD new-column-name column-definition;

O nome da tabela รฉ o nome da tabela a ser modificada.

O nome da nova coluna รฉ o nome da nova coluna a ser adicionada.

A definiรงรฃo da coluna รฉ a tipo de dados da nova coluna.

Veja a tabela de livros mostrada abaixo:

Adicionando uma nova coluna em PostgreSQL

A tabela possui duas colunas, id e nome. Precisamos adicionar uma nova coluna ร  tabela e dar a ela o nome de autor. Basta executar o seguinte comando:

ALTER TABLE Book
  ADD author VARCHAR(50);

Depois de executar o comando acima, a tabela Book agora fica da seguinte forma:

Adicionando uma nova coluna em PostgreSQL

A nova coluna foi adicionada com sucesso.

Renomeando uma coluna de tabela

Podemos usar o comando ALTER TABLE para alterar o nome de uma coluna. Neste caso, o comando รฉ utilizado com a seguinte sintaxe:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

O nome da tabela รฉ o nome da tabela cuja coluna serรก renomeada.

O nome antigo รฉ o nome antigo/atual da coluna.

O novo nome รฉ o novo nome da coluna. Considere a tabela Book mostrada abaixo:

Livro:

Renomeando uma coluna da tabela em PostgreSQL

Precisamos do nome do autor da coluna para book_author. Aqui estรก o comando:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Apรณs executar o comando, podemos visualizar a estrutura da tabela:

Renomeando uma coluna da tabela em PostgreSQL

O nome da coluna foi alterado com sucesso.

Definindo um valor padrรฃo para uma coluna

Podemos definir um valor padrรฃo para uma coluna de forma que mesmo quando vocรช nรฃo especificar um valor para essa coluna durante as operaรงรตes INSERT, o valor padrรฃo serรก usado. Neste caso, o comando ALTER TABLE pode ser utilizado com a seguinte sintaxe:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

O nome da tabela รฉ o nome da tabela cuja coluna deve ser modificada.

O nome da coluna รฉ o nome cujo valor padrรฃo deve ser definido.

O valor รฉ o valor padrรฃo da coluna.

Considere a tabela do livro fornecida abaixo:

Definindo um valor padrรฃo para uma coluna

Precisamos definir um valor padrรฃo para a coluna book_author. Podemos executar o seguinte comando:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';		

Agora, vamos inserir uma linha na tabela:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Observe que inserimos valores para apenas duas colunas, id e nome. No entanto, o valor padrรฃo foi usado para a coluna book_author:

Definindo um valor padrรฃo para uma coluna

Adicionando uma restriรงรฃo de verificaรงรฃo

Uma restriรงรฃo de verificaรงรฃo ajuda a validar os registros que estรฃo sendo inseridos em uma tabela. Podemos fazer isso combinando o comando ALTER TABLE com a instruรงรฃo ADD CHECK. Sintaxe:

ALTER TABLE table-name ADD CHECK expression;

O nome da tabela รฉ o nome da tabela a ser alterada.

A expressรฃo รฉ a restriรงรฃo a ser imposta ร  coluna da tabela.

Vamos modificar a coluna book_author da tabela Book para que ela aceite apenas os valores Nicholas e Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Agora, vamos tentar inserir um valor diferente de Nicholas ou Samuel na coluna book_author da tabela Book:

INSERT INTO Book
VALUES(7, 'Melhor PostgreSQL Book', 'Gregory Bush');

A instruรงรฃo retornarรก o seguinte erro:

Adicionando uma restriรงรฃo de verificaรงรฃo

A operaรงรฃo de inserรงรฃo falhou porque violamos a restriรงรฃo de verificaรงรฃo.

Renomeando uma tabela

Aqui estรก a sintaxe do comando ALTER TABLE para renomear uma tabela:

ALTER TABLE table-name
  RENAME TO new-table-name;

O nome da tabela รฉ o nome atual da tabela.

O novo nome da tabela รฉ o novo nome a ser atribuรญdo ร  tabela.

Por exemplo, vamos mudar o nome da tabela Livro para Livros:

ALTER TABLE Book
  RENAME TO Books;

Usando pgAdmin

Agora vamos ver como essas aรงรตes podem ser realizadas usando o pgAdmin.

Adicionando uma nova coluna

Para fazer o mesmo por meio do pgAdmin, faรงa o seguinte:

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

Adicionando uma nova coluna usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book
  ADD author VARCHAR(50);

Passo 4) Clique no botรฃo Executar.

Adicionando uma nova coluna usando pgAdmin

Passo 5) Para verificar se a coluna foi adicionada, faรงa o seguinte:

  1. Clique em Bancos de dados na navegaรงรฃo esquerda.
  2. Expanda Demonstraรงรฃo.
  3. Expanda Esquemas.
  4. Expanda Pรบblico.
  5. Expanda Tabelas.
  6. Expandir livro.
  7. Expanda Colunas.

Adicionando uma nova coluna usando pgAdmin

A coluna deveria ter sido adicionada, conforme mostrado abaixo:

Adicionando uma nova coluna usando pgAdmin

Renomeando uma coluna de tabela

Para fazer o mesmo por meio do pgAdmin, faรงa o seguinte:

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

Renomeando uma coluna de tabela usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Passo 4) Clique no botรฃo Executar.

Renomeando uma coluna de tabela usando pgAdmin

Passo 5) Para verificar se a alteraรงรฃo foi bem-sucedida, faรงa o seguinte:

  1. Clique em Bancos de dados na navegaรงรฃo esquerda.
  2. Expanda Demonstraรงรฃo.
  3. Expanda Esquemas.
  4. Expanda Pรบblico.
  5. Expanda Tabelas.
  6. Expandir livro.
  7. Expanda Colunas.

Renomeando uma coluna de tabela usando pgAdmin

As colunas agora devem ser as seguintes:

Renomeando uma coluna de tabela usando pgAdmin

A coluna foi alterada com sucesso.

Definindo um valor padrรฃo para uma coluna

Para fazer o mesmo por meio do pgAdmin, faรงa o seguinte:

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

Definindo um valor padrรฃo para uma coluna

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';		

Passo 4) Clique no botรฃo Executar.

Definindo um valor padrรฃo para uma coluna

Passo 5) Para testar, execute o seguinte comando no editor de consultas:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Passo 6) Agora podemos consultar a tabela para verificar se o valor padrรฃo foi inserido na coluna book_author:

Definindo um valor padrรฃo para uma coluna

Adicionando uma restriรงรฃo de verificaรงรฃo

Para fazer o mesmo por meio do pgAdmin, faรงa o seguinte:

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

Adicionando uma restriรงรฃo de verificaรงรฃo usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Passo 4) Clique no botรฃo Executar.

Adicionando uma restriรงรฃo de verificaรงรฃo usando pgAdmin

Passo 5) Para testar isso, faรงa o seguinte:

  1. Digite a seguinte consulta no editor de consultas:
    INSERT INTO Book
    VALUES(7, 'Melhor PostgreSQL Book', 'Gregory Bush');
    
  2. Clique no botรฃo Executar.

    Adicionando uma restriรงรฃo de verificaรงรฃo usando pgAdmin

    Ele retornarรก o seguinte:

Adicionando uma restriรงรฃo de verificaรงรฃo usando pgAdmin

Renomeando uma tabela

Para fazer o mesmo por meio do pgAdmin, faรงa o seguinte:

Passo 1) Faรงa login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegaรงรฃo ร  esquerda, clique em Bancos de dados.
  2. Clique em Demonstraรงรฃo.

Renomeando uma tabela usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

ALTER TABLE Book
  RENAME TO Books;

Passo 4) Clique no botรฃo Executar.

Renomeando uma tabela usando pgAdmin

Passo 5) Para verificar se a tabela foi renomeada, faรงa o seguinte:

  1. Clique em Bancos de dados na navegaรงรฃo esquerda.
  2. Expanda Demonstraรงรฃo.
  3. Expanda Esquemas.
  4. Expanda Pรบblico.
  5. Expanda Tabelas.

Renomeando uma tabela usando pgAdmin

A tabela foi renomeada com sucesso.

Resumo

  • A instruรงรฃo ALTER TABLE รฉ usada para modificar a estrutura da tabela.
  • O comando ALTER TABLE assume vรกrios formatos dependendo da tarefa que vocรช precisa executar.
  • A estrutura pode ser as colunas da tabela ou a prรณpria tabela.
  • Podemos usar esta instruรงรฃo para alterar o nome de uma tabela.
  • O comando ALTER TABLE pode ser usado para definir o valor padrรฃo de uma coluna.
  • A instruรงรฃo pode ser usada para validar os valores inseridos em uma coluna da tabela.

Baixe o banco de dados usado neste tutorial

Resuma esta postagem com: