# Hoe maak je tabellen aan met CREATE TABLE in PostgreSQL

Met `CREATE TABLE` commando van PostgreSQL kun je nieuwe tabellen in een database aanmaken. Bij het gebruik van dit commando kun je ook diverse specificaties voor de tabel en afzonderlijke kolommen opgeven.

## Wat is PostgreSQL `CREATE TABLE`?

Het `CREATE TABLE` -commando in PostgreSQL wordt gebruikt om **een nieuwe tabel aan te maken in een bestaande database**. Bij het aanmaken van een nieuwe tabel moet je een unieke naam opgeven en elke kolom een naam en een gegevenstype toewijzen. Bij het aanmaken van tabellen in dit populaire databasebeheersysteem kun je ook beperkingen definiëren voor alle kolommen in de tabel of voor afzonderlijke kolommen.

Tip Als u uw tabelinstellingen later wilt wijzigen, kunt u de opdracht [ALTER TABLE](https://www.ionos.com/nl-be/digitalguide/server/configuratie/postgresql-alter-table/) gebruiken om de kolommen naar wens aan te passen.

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

De basissyntaxis voor PostgreSQL `CREATE TABLE` is als volgt:

```postgresql
CREATE TABLE table_name(
column1 data_type PRIMARY KEY,
column2 data_type,
column3 data_type,
…
);
```

Met het commando `CREATE TABLE` geef je PostgreSQL de opdracht om **een nieuwe tabel aan te maken**. Het commando zelf wordt gevolgd door de naam van de tabel, die uniek moet zijn. Direct achter de tabelnaam staat een paar haakjes, waarbinnen je de verschillende kolomnamen en de bijbehorende gegevenstypen moet definiëren.

Als je beperkingen wilt toevoegen, verandert de syntaxis:

```postgresql
CREATE TABLE table_name(
column1 data_type PRIMARY KEY constraint,
column2 data_type constraint,
column3 data_type constraint,
…
);
```

Naast `PRIMARY KEY` ondersteunt PostgreSQL ook de volgende beperkingen:

- `NOT NULL`: Zorgt ervoor dat een kolom niet meer dan `NULL` waarden kan bevatten
- `UNIQUE`: Zorgt ervoor dat alle waarden in een kolom of een combinatie van kolommen uniek zijn
- `CHECK`: Definieert voorwaarden waaraan moet worden voldaan bij het invoeren of bijwerken van gegevens
- `FOREIGN KEY`: Stelt een relatie in met een kolom in een andere tabel
- `DEFAULT`: Specificeert een standaardwaarde voor een kolom als er geen expliciete waarde is opgegeven

## Voorbeeld van PostgreSQL `CREATE TABLE`

Om te laten zien hoe `CREATE TABLE` in PostgreSQL werkt, gaan we een tabel aanmaken met de naam `customer_list`. Deze tabel krijgt vier kolommen: `id`, `name`, `country` en `address`. De `id` is ingesteld als de `PRIMARY KEY`. De `NOT NULL` wordt gebruikt om ervoor te zorgen dat de `id` en `name` waarden bevatten. Dit is hoe de code eruitziet:

```postgresql
CREATE TABLE customer_list(
id INT PRIMARY KEY NOT NULL,
name VARCHAR(50) NOT NULL,
country VARCHAR(50),
address VARCHAR(255)
);
```

Met dit commando maak je een lege tabel aan met de tabelnaam en kolommen die in de code zijn opgegeven. Je kunt de tabel nu met gegevens vullen. Als de tabel met gegevens is gevuld, ziet deze er ongeveer zo uit:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>naam</th>
      <th>land</th>
      <th>adres</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Emily Voorbeeld</td>
      <td>Verenigd Koninkrijk</td>
      <td>123 High St, Anytown, W1 4GH</td>
    </tr>
    <tr>
      <td>2</td>
      <td>…</td>
      <td>…</td>
      <td>…</td>
    </tr>
    <tr>
      <td>3</td>
      <td>…</td>
      <td>…</td>
      <td>…</td>
    </tr>
  </tbody>
</table>

### Hoe controleer je of er tabellen zijn met behulp van `\d`

Met het commando `\d` worden alle tabellen in een database weergegeven. Je kunt dit commando gebruiken om te controleren of een tabel succesvol is aangemaakt. Dat doe je als volgt:

```postgresql
testdb-# \d
```

Je kunt dit commando ook gebruiken om een gedetailleerde beschrijving van een tabel op te vragen. We gebruiken de tabel van hierboven om te laten zien hoe de code daarvoor eruitziet:

```postgresql
testdb-# \d customer_list
```


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