# Sådan tilføjes eller fjernes kolonner i PostgreSQL med ALTER TABLE

Med kommandoen ``ALTER TABLE`` i PostgreSQL kan du tilføje eller ændre kolonner i databasetabeller.

## Hvad er PostgreSQL `ALTER TABLE`?

Kommandoen `ALTER TABLE` i PostgreSQL kan bruges til **at ændre tabeller** i en database. Med denne kommando kan du tilføje, fjerne eller ændre kolonner i en tabel efter behov. Den kan også bruges til at indføre eller ophæve begrænsninger på en tabel i databasestyringssystemet. For at bruge denne kommando skal du kombinere den med en bestemt handling.

## Hvordan skriver man tallet `ALTER TABLE`?

For at få en bedre forståelse af, hvordan man bruger `ALTER TABLE`, skal vi først se på dens syntaks:

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

Efter kommandoen skal du angive navnet på den tabel, du vil ændre, og vælge den handling, der passer til de ændringer, du ønsker at foretage.

Tip For at oprette en ny tabel kan du bruge kommandoen [CREATE TABLE](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/postgresql-create-table/) i PostgreSQL.

## Eksempler på PostgreSQL `ALTER TABLE`

Nedenfor viser vi, hvordan `ALTER TABLE` fungerer, ved hjælp af et simpelt eksempel. Vi bruger en tabel ved navn `customers`, der har tre kolonner og tre rækker:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>navn</th>
      <th>by</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>

Vi kan tilpasse denne tabel på forskellige måder ved hjælp af `ALTER TABLE`.

### Tilføjelse af en kolonne i PostgreSQL `ADD COLUMN`

For at tilføje en ny kolonne skal du bruge `ALTER TABLE` sammen med PostgreSQL’s `ADD COLUMN`. Denne handling kræver to parametre: navnet på den nye kolonne og dens datatype. Syntaksen er som følger:

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

Her er et eksempel på, hvordan du kan tilføje en adressekolonne til tabellen `customers`:

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

Sådan ser tabellen ud nu:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>navn</th>
      <th>by</th>
      <th>adresse</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>

### Fjernelse af en kolonne med `DROP COLUMN`

For at fjerne en kolonne fra en tabel skal du bruge `ALTER TABLE` sammen med handlingen `DROP COLUMN`. Her skal du blot angive kolonnenavnet som parameter:

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

Brug følgende kode for at fjerne kolonne `city`:

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

Dette reducerer tabellen til tre kolonner:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>navn</th>
      <th>adresse</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>

### Omdøbning af en kolonne med `RENAME COLUMN`

Du kan også omdøbe en eksisterende kolonne. Dette kan være et godt alternativ til at slette kolonner og derefter tilføje dem igen. Syntaksen for `RENAME COLUMN` er:

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

Du kan for eksempel ændre kolonne `name` til `customer_name`:

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

Sådan ser tabellen ud nu:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>kundens\_navn</th>
      <th>adresse</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>

### Yderligere PostgreSQL-handlinger for `ALTER TABLE`

Her er nogle andre vigtige funktioner, du kan bruge med `ALTER TABLE`:

Ændring af en kolonnens **datatype**:

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

Sikre sig, at alle poster i en kolonne har en værdi:

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

Fastlæggelse af begrænsninger som f.eks. `UNIQUE` eller `PRIMARY KEY` ved hjælp af `ALTER TABLE` sammen med `ADD CONSTRAINT`:

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


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