# Kuidas lisada või eemaldada veerge PostgreSQL-is käsuga ALTER TABLE

PostgreSQL-i käsk ``ALTER TABLE`` võimaldab teil andmebaasi tabelite veerge lisada või muuta.

## Mis on PostgreSQL `ALTER TABLE`?

PostgreSQL-i käsku `ALTER TABLE` saab kasutada andmebaasi **tabelite muutmiseks**. Selle käsu abil saate vajaduse korral tabelisse veerge lisada, neid eemaldada või muuta. Seda saab kasutada ka andmebaasi haldussüsteemis tabeli piirangute kehtestamiseks või tühistamiseks. Selle käsu kasutamiseks tuleb see kombineerida konkreetse toiminguga.

## Milline on numbri `ALTER TABLE` kirjutamisviis?

Et paremini mõista, kuidas `ALTER TABLE` kasutada, vaatame kõigepealt selle süntaksit:

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

Pärast käsku tuleb märkida muudetava tabeli nimi ja valida soovitud muudatuste jaoks sobiv toiming.

Tip Uue tabeli loomiseks võid kasutada PostgreSQL-is käsku [CREATE TABLE](https://www.ionos.com/et-ee/digitalguide/server/seadistused/postgresql-create-table/).

## PostgreSQL `ALTER TABLE` näited

Allpool näitame lihtsa näite abil, kuidas `ALTER TABLE` töötab. Kasutame tabelit nimega `customers`, millel on kolm veergu ja kolm rida:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nimi</th>
      <th>linn</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>

Me saame seda tabelit mitmel viisil kohandada, kasutades `ALTER TABLE`.

### Veeru lisamine PostgreSQL `ADD COLUMN`

Uue veeru lisamiseks kasuta käsku `ALTER TABLE` koos PostgreSQLi käskuga `ADD COLUMN`. See käsk nõuab kahte parameetrit: uue veeru nime ja selle andmetüübi. Süntaks on järgmine:

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

Näiteks võid tabelisse `customers` aadressi veeru lisada järgmiselt:

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

Tabel näeb praegu välja järgmine:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nimi</th>
      <th>linn</th>
      <th>aadress</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>

### Veeru eemaldamine, milles on `DROP COLUMN`

Veeru tabelist eemaldamiseks kasuta `ALTER TABLE` koos toiminguga `DROP COLUMN`. Siin tuleb parameetrina lisada ainult veeru nimi:

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

`city` veeru eemaldamiseks kasuta järgmist koodi:

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

Selle tulemusel jääb tabelisse alles kolm veergu:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nimi</th>
      <th>aadress</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>

### Veeru ümbernimetamine numbriga `RENAME COLUMN`

Samuti saate olemasolevale veerule uue nime anda. See võib olla hea alternatiiv veergude kustutamisele ja uuesti lisamisele. `RENAME COLUMN` on vaja kasutada `RENAME COLUMN` süntaksit:

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

Näiteks võid muuta `name` veeru `customer_name` veeruks:

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

Tabel näeb praegu välja järgmine:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>kliendi\_nimi</th>
      <th>aadress</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>

### Täiendavad PostgreSQL-toimingud versioonile `ALTER TABLE`

Siin on veel mõned olulised toimingud, mida saad `ALTER TABLE`-ga teha:

Veeru **andmetüübi** muutmine:

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

Veendumaks, et igal veerus oleval kirjel on väärtus:

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

Piirangute kehtestamine, näiteks `UNIQUE` või `PRIMARY KEY`, kasutades `ALTER TABLE` koos `ADD CONSTRAINT`:

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


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