# Kuidas kasutada PostgreSQL-i DELETE-käsku

PostgreSQL `DELETE` versioonis on võimalik tabelist andmeid kustutada. Käsku saab täpsustada tingimuste abil, mis võimaldab määrata kindlaks üksikute ridade kustutamise. Kuna PostgreSQL-is on kustutamine pöördumatu, on oluline kasutada seda käsku ettevaatlikult.

## Mis on PostgreSQL `DELETE`?

PostgreSQL-i käsku `DELETE` kasutatakse **kirjetest tabelist kustutamiseks**. Klausli `WHERE` abil saate valida kustutatavad read. Ilma klauslita `WHERE` kustutatakse määratud tabeli kõik andmed **lõplikult**. Kuna andmed kustutatakse lõplikult, tuleb seda käsku kasutada ettevaatlikult.

## Milline on PostgreSQL `DELETE` süntaks?

PostgreSQL `DELETE` põhiline süntaks on järgmine:

```postgresql
DELETE FROM table_name
WHERE [condition];
```

Käsk `DELETE FROM` käivitab määratud tabeli ridade kustutamise. Lausega `WHERE` saate määrata konkreetsed read, millest andmed tuleb kustutada. Mitme tingimuse rakendamiseks võite kasutada `AND` või `OR`.

Note Enne andmete kustutamist veenduge, et teil on andmebaasi ajakohane varukoopia. Kustutamist on võimalik teostada ka tehingu raames. See aitab vältida andmete juhuslikku kaotust, kui käsk täidetakse valesti.

## Kuidas kustutada andmeid tabelist

Et saada parem ülevaade sellest, kuidas PostgreSQL-is töötab `DELETE`, vaatame ühte praktilist näidet. Esmalt loome käsuga [CREATE TABLE](https://www.ionos.com/et-ee/digitalguide/server/seadistused/postgresql-create-table/) tabeli nimega „customer\_list“. Seejärel täidame selle käsuga [INSERT INTO](https://www.ionos.com/et-ee/digitalguide/server/seadistused/postgresql-insert-into/). Tabelil on kolm veergu (`id`, `name` ja `city`) ning see sisaldab nelja kirjet:

```postgresql
|id|name|city|
|-|-|-|
|1|Haines|Sheffield|
|2|Sullivan|Glasgow|
|3|Smith|Newcastle|
|4|Haines|Belfast|
```

Kui kasutate PostgreSQL `DELETE` ilma tingimuseta, kustutatakse kõik tabelis olevad andmed. Tabelistruktuur ise aga ei kustutata. Käsk näeb välja järgmine:

```postgresql
DELETE FROM customer_list;
```

## Kuidas kustutada rida PostgreSQL-is

Sageli on vaja kustutada **üksik rida**. Selleks tuleb lisada `WHERE`. Oletame näiteks, et soovime oma nimekirjast kustutada Sullivani (ID-number `2`). Selleks võime kasutada järgmist koodi:

```postgresql
DELETE FROM customer_list
WHERE id = 2;
```

### Kuidas määrata rida mitme tingimuse abil

Kui töötate suurte tabelitega, võib seal esineda dubleeritud kirjeid. Et tagada, et kustutatakse vaid üks rida, võite kasutada **mitut tingimust**. Eespool toodud tabelis on kaks klienti nimega Haines, kuid me soovime kustutada vaid teise kirje. Selleks võime kombineerida kahte tingimust:

```postgresql
DELETE FROM customer_list
WHERE name = 'Haines'
AND id >= 3;
```

See käsk kustutab kõik read, mille nimes on „Haines“ ja mille väärtus `id` on vähemalt `3`. Kuna esimese „Haines“ sisaldava kirje väärtus `id` on väiksem kui `3`, jääb see pärast kustutamiskäsu täitmist andmebaasi alles.


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