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:
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:
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:
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:
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:
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:
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:
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)
- Na barra de navegação à esquerda, clique em Bancos de dados.
- Clique em Demonstração.
Passo 3) Digite a consulta no editor de consultas:
ALTER TABLE Book ADD author VARCHAR(50);
Passo 4) Clique no botão Executar.
Passo 5) Para verificar se a coluna foi adicionada, faça o seguinte:
- Clique em Bancos de dados na navegação esquerda.
- Expanda Demonstração.
- Expanda Esquemas.
- Expanda Público.
- Expanda Tabelas.
- Expandir livro.
- Expanda Colunas.
A coluna deveria ter sido adicionada, conforme mostrado abaixo:
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)
- Na barra de navegação à esquerda, clique em Bancos de dados.
- Clique em Demonstração.
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.
Passo 5) Para verificar se a alteração foi bem-sucedida, faça o seguinte:
- Clique em Bancos de dados na navegação esquerda.
- Expanda Demonstração.
- Expanda Esquemas.
- Expanda Público.
- Expanda Tabelas.
- Expandir livro.
- Expanda Colunas.
As colunas agora devem ser as seguintes:
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)
- Na barra de navegação à esquerda, clique em Bancos de dados.
- Clique em Demonstração.
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.
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:
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)
- Na barra de navegação à esquerda, clique em Bancos de dados.
- Clique em Demonstração.
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.
Passo 5) Para testar isso, faça o seguinte:
- Digite a seguinte consulta no editor de consultas:
INSERT INTO Book VALUES(7, 'Melhor PostgreSQL Book', 'Gregory Bush');
- Clique no botão Executar.
Ele retornará o seguinte:
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)
- Na barra de navegação à esquerda, clique em Bancos de dados.
- Clique em Demonstração.
Passo 3) Digite a consulta no editor de consultas:
ALTER TABLE Book RENAME TO Books;
Passo 4) Clique no botão Executar.
Passo 5) Para verificar se a tabela foi renomeada, faça o seguinte:
- Clique em Bancos de dados na navegação esquerda.
- Expanda Demonstração.
- Expanda Esquemas.
- Expanda Público.
- Expanda Tabelas.
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