# Slik legger du til eller fjerner kolonner i PostgreSQL med ALTER TABLE

Kommandoen `ALTER TABLE` ` i PostgreSQL lar deg legge til eller endre kolonner i databasetabeller.

## Hva er PostgreSQL `ALTER TABLE`?

Kommandoen `ALTER TABLE` i PostgreSQL kan brukes til **å endre tabeller** i en database. Denne kommandoen lar deg legge til, fjerne eller endre kolonner i en tabell etter behov. Den kan også brukes til å innføre eller oppheve begrensninger på en tabell i databasestyringssystemet. For å bruke denne kommandoen må du kombinere den med en bestemt handling.

## Hva er syntaksen for `ALTER TABLE`?

For å få en bedre forståelse av hvordan man bruker `ALTER TABLE`, la oss først se på syntaksen:

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

Etter kommandoen må du angi navnet på tabellen du vil endre, og velge den handlingen som passer til endringene du ønsker å gjøre.

Tip For å opprette en ny tabell kan du bruke kommandoen [CREATE TABLE](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/postgresql-create-table/) i PostgreSQL.

## Eksempler på PostgreSQL `ALTER TABLE`

Nedenfor viser vi hvordan `ALTER TABLE` fungerer ved hjelp av et enkelt eksempel. Vi bruker en tabell med navnet `customers` som har tre kolonner og tre rader:

<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 tabellen på ulike måter ved hjelp av `ALTER TABLE`.

### Legge til en kolonne i PostgreSQL `ADD COLUMN`

For å legge til en ny kolonne, bruk `ALTER TABLE` sammen med PostgreSQLs `ADD COLUMN`. Denne handlingen krever to parametere: navnet på den nye kolonnen og dens datatype. Syntaksen er som følger:

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

Her er for eksempel hvordan du kan legge til en adressekolonne i tabellen `customers`:

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

Slik ser tabellen ut nå:

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

### Fjerne en kolonne med `DROP COLUMN`

For å fjerne en kolonne fra en tabell, bruk `ALTER TABLE` sammen med `DROP COLUMN`. Her trenger du bare å oppgi kolonnenavnet som parameter:

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

For å fjerne kolonne `city`, bruk følgende kode:

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

Dette reduserer 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>

### Endre navn på en kolonne med `RENAME COLUMN`

Du kan også gi en eksisterende kolonne et nytt navn. Dette kan være et godt alternativ til å slette kolonner og deretter legge dem til på nytt. Syntaksen for `RENAME COLUMN` er:

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

Du kan for eksempel endre kolonne `name` til `customer_name`:

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

Slik ser tabellen ut nå:

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

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

Her er noen andre viktige funksjoner du kan bruke med `ALTER TABLE`:

Endre **datatypen** til en kolonne:

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

Sikre at hver oppføring i en kolonne har en verdi:

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

Å fastsette begrensninger som `UNIQUE` eller `PRIMARY KEY` ved å bruke `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/nb-no/digitalguide/server/konfigurasjon/postgresql-alter-table/](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/postgresql-alter-table/) for AI/LLM consumption.