# Como adicionar ou remover colunas com PostgreSQL ALTER TABLE

O comando `ALTER TABLE` do PostgreSQL possibilita adicionar, modificar ou remover colunas nas tabelas de um banco de dados.

## O que é o comando PostgreSQL `ALTER TABLE`?

O comando `ALTER TABLE` do PostgreSQL é usado para **modificar tabelas** em um banco de dados. Ele possibilita adicionar, remover ou ajustar colunas de acordo com suas necessidades. O comando também pode ser usado para implementar ou retirar restrições de uma tabela nesse sistema de gerenciamento de banco de dados. Para executá-lo, é preciso combiná-lo com uma ação específica.

## Qual é a sintaxe do comando PostgreSQL `ALTER TABLE`?

Para entendermos como usar o comando PostgreSQL `ALTER TABLE`, vamos conhecer sua sintaxe primeiro:

```postgresql
ALTER TABLE nome_tabela ação;
```

Após a inserção do comando, é preciso especificar o nome da tabela que você deseja modificar e escolher qual ação será aplicada para que as mudanças sejam feitas.

Dica Para criar uma nova tabela, use o comando [CREATE TABLE](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-create-table/) no PostgreSQL.

## Exemplos de uso do comando PostgreSQL `ALTER TABLE`

A seguir, vamos demonstrar como o comando `ALTER TABLE` com um exemplo simples. Usaremos uma tabela chamada `clientes`, composta por três colunas e três linhas:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nome</th>
      <th>cidade</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Luiz</td>
      <td>Manaus</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Jorge</td>
      <td>Recife</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Vivian</td>
      <td>Palmas</td>
    </tr>
  </tbody>
</table>

É possível ajustar essa tabela de várias formas usando o comando PostgreSQL `ALTER TABLE`.

### Adicionar uma coluna usando PostgreSQL `ADD COLUMN`

Para adicionar uma nova coluna, use o comando `ALTER TABLE` juntamente com a ação PostgreSQL `ADD COLUMN`. Ela exige a inclusão de dois parâmetros: o nome da nova coluna e o tipo de dado. Esta é sua sintaxe:

```postgresql
ALTER TABLE nome_tabela ADD COLUMN nome_coluna tipo_dado;
```

Por exemplo, podemos adicionar uma coluna de endereço à tabela `clientes` da seguinte forma:

```postgresql
ALTER TABLE clientes ADD COLUMN endereço VARCHAR(255);
```

A tabela atualizada ficará assim:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nome</th>
      <th>cidade</th>
      <th>endereço</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Luiz</td>
      <td>Manaus</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Jorge</td>
      <td>Recife</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Vivian</td>
      <td>Palmas</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Remover uma coluna usando `DROP COLUMN`

Para remover uma coluna da tabela, use o comando `ALTER TABLE` juntamente com a ação `DROP COLUMN` no PostgreSQL. Para fazer isso, basta adicionar o nome da coluna que será excluída como parâmetro:

```postgresql
ALTER TABLE nome_tabela DROP COLUMN nome_coluna;
```

Por exemplo, este é o código para remover a coluna `cidade`:

```postgresql
ALTER TABLE clientes DROP COLUMN cidade;
```

A tabela voltará a ter três colunas:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nome</th>
      <th>endereço</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Luiz</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Jorge</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Vivian</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Renomear uma coluna usando `RENAME COLUMN`

Também é possível renomear uma coluna existente. Essa é uma boa alternativa se você quiser evitar a remoção e adição de uma nova coluna. A sintaxe da ação `RENAME COLUMN` é a seguinte:

```postgresql
ALTER TABLE nome_tabela RENAME COLUMN antigo_nome_coluna TO novo_nome_coluna;
```

Por exemplo, você pode alterar a coluna `nome` para `nome_cliente`:

```postgresql
ALTER TABLE clientes RENAME COLUMN nome TO nome_cliente;
```

A nova tabela ficará assim:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nome\_cliente</th>
      <th>endereço</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Luiz</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Jorge</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Vivian</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Outras ações no PostgreSQL para o comando `ALTER TABLE`

Conheça outras ações importantes que você pode combinar com o comando PostgreSQL `ALTER TABLE`:

Alterar o **tipo de dado** de uma coluna:

```postgresql
ALTER TABLE nome_tabela ALTER COLUMN nome_coluna TYPE tipo_dado;
```

Certificar-se de que todas as entradas de uma coluna contêm um valor:

```postgresql
ALTER TABLE nome_tabela ALTER COLUMN nome_coluna SET NOT NULL;
```

Estabelecer restrições (*constraints*), como `UNIQUE` ou `PRIMARY KEY`, usando o comando `ALTER TABLE` e a ação `ADD CONSTRAINT`:

```postgresql
ALTER TABLE nome_tabela ADD CONSTRAINT nome_restrição definição_restrição;
```


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-alter-table/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-alter-table/) for AI/LLM consumption.