# Sådan oprettes tabeller med PostgreSQL’s CREATE TABLE

Kommandoen `POSTGRESQL`CREATE TABLE`` bruges til at oprette nye tabeller i en database. Når du bruger denne kommando, kan du også angive forskellige indstillinger for tabellen og de enkelte kolonner.

## Hvad er PostgreSQL `CREATE TABLE`?

Kommandoen `CREATE TABLE` i PostgreSQL bruges til **at oprette en ny tabel i en eksisterende database**. Når du opretter en ny tabel, skal du angive et unikt navn til den samt tildele hver kolonne et navn og en datatype. Når du opretter tabeller i dette populære databasestyringssystem, kan du også definere begrænsninger for enten alle kolonnerne i tabellen eller for enkelte kolonner.

Tip Hvis du senere ønsker at ændre dine tabelindstillinger, kan du bruge kommandoen [ALTER TABLE](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/postgresql-alter-table/) til at tilpasse kolonnerne efter behov.

## Hvad er syntaksen for `CREATE TABLE`?

Den grundlæggende syntaks for PostgreSQL `CREATE TABLE` er som følger:

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

Kommandoen `CREATE TABLE` beder PostgreSQL om **at oprette en ny tabel**. Selve kommandoen efterfølges af tabelnavnet, som skal være unikt. Umiddelbart efter tabelnavnet skrives et sæt parenteser, hvor man skal angive de forskellige kolonnenavne og deres tilhørende datatyper.

Hvis du vil tilføje begrænsninger, ændres syntaksen:

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

Ud over `PRIMARY KEY` understøtter PostgreSQL også følgende begrænsninger:

- `NOT NULL`: Sikrer, at en kolonne ikke kan indeholde `NULL` værdier
- `UNIQUE`: Sikrer, at alle værdier i en kolonne eller en kombination af kolonner er unikke
- `CHECK`: Definerer betingelser, der skal opfyldes ved indsættelse eller opdatering af data
- `FOREIGN KEY`: Opretter en relation til en kolonne i en anden tabel
- `DEFAULT`: Angiver en standardværdi for en kolonne, hvis der ikke angives en eksplicit værdi

## Eksempel på PostgreSQL `CREATE TABLE`

For at illustrere, hvordan `CREATE TABLE` fungerer i PostgreSQL, vil vi oprette en tabel ved navn `customer_list`. Denne tabel vil have fire kolonner: `id`, `name`, `country` og `address`. Kolonnen `id` er indstillet som `PRIMARY KEY`. Betingelsen `NOT NULL` bruges til at sikre, at kolonnerne `id` og `name` indeholder værdier. Her er koden:

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

Denne kommando opretter en tom tabel med det tabelnavn og de kolonner, der er angivet i koden. Du kan nu indtaste data i tabellen. Når tabellen er udfyldt med data, kan den se sådan ud:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>navn</th>
      <th>land</th>
      <th>adresse</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Emily Eksempel</td>
      <td>Storbritannien</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>

### Sådan tjekker du for borde ved hjælp af `\d`

Kommandoen `\d` viser alle tabellerne i en database og kan bruges til at kontrollere, om en tabel er blevet oprettet korrekt. Sådan gør du:

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

Du kan også bruge denne kommando til at få en detaljeret beskrivelse af en tabel. Vi bruger tabellen ovenfor til at vise dig, hvordan koden til dette ser ud:

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


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