# Slik oppretter du tabeller med PostgreSQLs CREATE TABLE

Kommandoen `POSTGRESQL`CREATE TABLE`` brukes til å opprette nye tabeller i en database. Når du bruker denne kommandoen, kan du også angi ulike spesifikasjoner for tabellen og de enkelte kolonnene.

## Hva er PostgreSQL `CREATE TABLE`?

Kommandoen `CREATE TABLE` i PostgreSQL brukes til **å opprette en ny tabell i en eksisterende database**. Når du oppretter en ny tabell, må du angi et unikt navn for den, samt gi hver kolonne et navn og en datatype. Når du oppretter tabeller i dette populære databasestyringssystemet, kan du også definere begrensninger enten for alle kolonnene i tabellen eller for enkeltkolonner.

Tip Hvis du ønsker å endre tabellinnstillingene senere, kan du bruke kommandoen [ALTER TABLE](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/postgresql-alter-table/) til å justere kolonnene etter behov.

## Hva er syntaksen for `CREATE TABLE`?

Den grunnleggende syntaksen 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` gir PostgreSQL beskjed om **å opprette en ny tabell**. Selve kommandoen følges av navnet på tabellen, som må være unikt. Rett etter tabellnavnet settes det inn et par parenteser, og innenfor disse må du definere de ulike kolonnenavnene og de tilhørende datatypene.

Hvis du vil legge til begrensninger, endres syntaksen:

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

I tillegg til `PRIMARY KEY` støtter PostgreSQL også følgende begrensninger:

- `NOT NULL`: Sikrer at en kolonne ikke kan inneholde `NULL` verdier
- `UNIQUE`: Sikrer at alle verdier i en kolonne eller en kombinasjon av kolonner er unike
- `CHECK`: Definerer betingelser som må oppfylles ved innlegging eller oppdatering av data
- `FOREIGN KEY`: Oppretter en relasjon til en kolonne i en annen tabell
- `DEFAULT`: Angir en standardverdi for en kolonne hvis ingen eksplisitt verdi er oppgitt

## Eksempel på PostgreSQL `CREATE TABLE`

For å illustrere hvordan `CREATE TABLE` fungerer i PostgreSQL, skal vi opprette en tabell som heter `customer_list`. Denne tabellen vil ha fire kolonner: `id`, `name`, `country` og `address`. Kolonnen `id` er angitt som `PRIMARY KEY`. Begrensningen `NOT NULL` brukes for å sikre at kolonnene `id` og `name` inneholder verdier. Slik ser koden ut:

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

Denne kommandoen oppretter en tom tabell med det tabellnavnet og de kolonnene som er angitt i koden. Du kan nå fylle tabellen med data. Når den er fylt med data, kan tabellen se omtrent slik ut:

<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>Storbritannia</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>

### Slik sjekker du om det finnes tabeller ved hjelp av `\d`

Kommandoen `\d` viser alle tabellene i en database og kan brukes til å sjekke om en tabell er opprettet. Slik gjør du det:

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

Du kan også bruke denne kommandoen til å få en detaljert beskrivelse av en tabell. Vi skal bruke tabellen ovenfor for å vise deg hvordan koden for dette ser ut:

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


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