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 eliminar uma coluna da tabela. As restrições e índices impostos às colunas também serão eliminados.
  • 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: use para eliminar 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