# Hoe kolommen toevoegen of verwijderen in PostgreSQL met ALTER TABLE

Met het ``ALTER TABLE``-commando in PostgreSQL kun je kolommen aan databasetabellen toevoegen of wijzigen.

## Wat is PostgreSQL `ALTER TABLE`?

Met het commando `ALTER TABLE` in PostgreSQL kun je **tabellen** in een database **wijzigen**. Met dit commando kun je naar behoefte kolommen aan een tabel toevoegen, verwijderen of aanpassen. Het kan ook worden gebruikt om beperkingen op een tabel in het databasebeheersysteem toe te passen of op te heffen. Om dit commando te gebruiken, moet je het combineren met een specifieke actie.

## Wat is de syntaxis voor `ALTER TABLE`?

Om een beter beeld te krijgen van hoe je `ALTER TABLE` gebruikt, kijken we eerst even naar de syntaxis ervan:

```postgresql
ALTER TABLE table_name action;
```

Na het commando moet u de naam opgeven van de tabel die u wilt wijzigen en de juiste actie selecteren voor de wijzigingen die u wilt aanbrengen.

Tip Om een nieuwe tabel aan te maken, kunt u in PostgreSQL de opdracht [CREATE TABLE](https://www.ionos.com/nl-be/digitalguide/server/configuratie/postgresql-create-table/) gebruiken.

## Voorbeelden van PostgreSQL `ALTER TABLE`

Hieronder laten we aan de hand van een eenvoudig voorbeeld zien hoe `ALTER TABLE` werkt. We gebruiken een tabel met de naam `customers` die drie kolommen en drie rijen bevat:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>naam</th>
      <th>stad</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>Northampton</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Johnson</td>
      <td>Edinburgh</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Smith</td>
      <td>Brighton</td>
    </tr>
  </tbody>
</table>

We kunnen deze tabel op verschillende manieren aanpassen met behulp van `ALTER TABLE`.

### Een kolom toevoegen met PostgreSQL `ADD COLUMN`

Om een nieuwe kolom toe te voegen, gebruikt u `ALTER TABLE` in combinatie met de actie `ADD COLUMN` van PostgreSQL. Deze actie vereist twee parameters: de naam van de nieuwe kolom en het gegevenstype ervan. De syntaxis is als volgt:

```postgresql
ALTER TABLE table_name ADD COLUMN column_name data_type;
```

Hier volgt bijvoorbeeld hoe je een adreskolom aan de tabel `customers` kunt toevoegen:

```postgresql
ALTER TABLE customers ADD COLUMN address VARCHAR(255);
```

Zo ziet de tabel er nu uit:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>naam</th>
      <th>plaats</th>
      <th>adres</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>Northampton</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Johnson</td>
      <td>Edinburgh</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Smith</td>
      <td>Brighton</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Een kolom verwijderen met `DROP COLUMN`

Om een kolom uit een tabel te verwijderen, gebruik je `ALTER TABLE` in combinatie met de `DROP COLUMN`. Hier hoef je alleen de kolomnaam als parameter op te geven:

```postgresql
ALTER TABLE table_name DROP COLUMN column_name;
```

Gebruik de volgende code om kolom `city` te verwijderen:

```postgresql
ALTER TABLE customers DROP COLUMN city;
```

Hierdoor wordt de tabel teruggebracht tot drie kolommen:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>naam</th>
      <th>adres</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Johnson</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Smith</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Een kolom hernoemen met `RENAME COLUMN`

Je kunt ook de naam van een bestaande kolom wijzigen. Dit kan een goed alternatief zijn voor het verwijderen en vervolgens opnieuw toevoegen van kolommen. De syntaxis voor `RENAME COLUMN` is:

```postgresql
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
```

Je kunt bijvoorbeeld de `name` kolom wijzigen in `customer_name`:

```postgresql
ALTER TABLE customers RENAME COLUMN name TO customer_name;
```

Zo ziet de tabel er nu uit:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>klantnaam</th>
      <th>adres</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Johnson</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Smith</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Extra PostgreSQL-acties voor `ALTER TABLE`

Hier volgen nog enkele andere belangrijke functies die je met `ALTER TABLE` kunt gebruiken:

Het **gegevenstype** van een kolom wijzigen:

```postgresql
ALTER TABLE table_name ALTER COLUMN column_name TYPE data_type;
```

Ervoor zorgen dat elke rij in een kolom een waarde bevat:

```postgresql
ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;
```

Het vaststellen van beperkingen zoals `UNIQUE` of `PRIMARY KEY` door gebruik te maken van `ALTER TABLE` in combinatie met `ADD CONSTRAINT`:

```postgresql
ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;
```


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/server/configuratie/postgresql-alter-table/](https://www.ionos.com/nl-be/digitalguide/server/configuratie/postgresql-alter-table/) for AI/LLM consumption.