# Kako dodati ali odstraniti stolpce v PostgreSQL-u s pomočjo ukaza ALTER TABLE

Z ukazom ``ALTER TABLE`` v PostgreSQL-u lahko dodajate ali spreminjate stolpce v tabelah baze podatkov.

## Kaj je PostgreSQL `ALTER TABLE`?

Z ukazom `ALTER TABLE` v PostgreSQL-u lahko **spreminjate tabele** v bazi podatkov. Ta ukaz vam omogoča, da po potrebi dodajate, odstranjujete ali prilagajate stolpce v tabeli. Uporabite ga lahko tudi za uvedbo ali odpravo omejitev v tabeli v sistemu za upravljanje baz podatkov. Da bi uporabili ta ukaz, ga morate kombinirati z določeno akcijo.

## Kakšna je sintaksa za `ALTER TABLE`?

Da bi bolje razumeli, kako uporabljati `ALTER TABLE`, si najprej oglejmo njegovo sintakso:

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

Po ukaznem nizu morate navesti ime tabele, ki jo želite spremeniti, in izbrati ustrezno dejanje za spremembe, ki jih želite izvesti.

Tip Za ustvarjanje nove tabele lahko v PostgreSQL uporabite ukaz [CREATE TABLE](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/postgresql-create-table/).

## Primeri za PostgreSQL `ALTER TABLE`

V nadaljevanju bomo na preprostem primeru prikazali, kako deluje `ALTER TABLE`. Uporabili bomo tabelo z imenom `customers`, ki ima tri stolpce in tri vrstice:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>ime</th>
      <th>mesto</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>

To tabelo lahko na različne načine prilagodimo z uporabo `ALTER TABLE`.

### Dodajanje stolpca v PostgreSQL `ADD COLUMN`

Če želite dodati novo stolpce, uporabite `ALTER TABLE` v kombinaciji z akcijo `ADD COLUMN` v PostgreSQL. Ta akcija zahteva dva parametra: ime novega stolpca in njegov podatkovni tip. Sintaksa je naslednja:

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

Tukaj je primer, kako lahko v tabelo `customers` dodate stolpec z naslovi:

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

Tako tabela izgleda zdaj:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>ime</th>
      <th>mesto</th>
      <th>naslov</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>

### Odstranjevanje stolpca s `DROP COLUMN`

Če želite iz tabele odstraniti stolpec, uporabite `ALTER TABLE` z akcijo `DROP COLUMN`. Pri tem morate kot parameter navesti le ime stolpca:

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

Če želite odstraniti stolpec `city`, uporabite naslednjo kodo:

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

S tem se tabela zmanjša na tri stolpce:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>ime</th>
      <th>naslov</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>

### Preimenovanje stolpca z `RENAME COLUMN`

Obstoječi stolpec lahko tudi preimenujete. To je lahko dobra alternativa brisanju stolpcev in njihovemu ponovnemu dodajanju. Sintaksa za `RENAME COLUMN` je:

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

Na primer, stolpec `name` lahko spremenite v `customer_name`:

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

Tako tabela izgleda zdaj:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>ime\_stranke</th>
      <th>naslov</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>

### Dodatne funkcije PostgreSQL za različico `ALTER TABLE`

Tukaj je še nekaj drugih ključnih ukazov, ki jih lahko uporabite v programu `ALTER TABLE`:

Sprememba **podatkovnega tipa** stolpca:

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

Preverjanje, ali ima vsak vnos v stolpcu vrednost:

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

Določanje omejitev, kot sta `UNIQUE` ali `PRIMARY KEY`, z uporabo `ALTER TABLE` in `ADD CONSTRAINT`:

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


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/postgresql-alter-table/](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/postgresql-alter-table/) for AI/LLM consumption.