# Kuidas kasutada SQL-i `NOT`-i

SQL-operaator `NOT` on loogiline operaator, mis võimaldab **otsingutulemusi tõhusalt ja täpselt filtreerida välistamise teel**. Operaatorit `NOT` saab kasutada tingimustele mittevastavate andmete väljajätmiseks, piirates tulemusi asjakohase teabega.

## Mis on `NOT` 10-operaator?

Nagu [SQL-i](https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-voi/) operaatorid [ `OR`](https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-voi/) ja `AND`, on ka operaator `NOT` üks SQL-i loogilistest operaatoritest, mida saab kasutada andmepäringute tingimuste ja kriteeriumide koostamiseks. Kui operaatorid `AND` ja `OR` tagastavad andmekogumitest need kirjed, mis vastavad kõigile või ühele tingimusele, **siis`NOT` põhineb välistamisel**. See jätab otsingutulemustest välja kogu teabe, mis *ei* vasta teatud tingimusele.

SQL `NOT` kasutatakse sageli koos SELECT, WHERE ja SQL `HAVING`. Saad **kombineerida `NOT`, `AND` ja `OR`**, et muuta oma otsing veelgi täpsemaks. Nii filtreerid välja ebaolulised tulemused.

### Mis vahe on SQL `NOT`, `AND` ja `OR` vahel?

SQL-i versioonide `NOT`, `AND` ja `OR` peamised erinevused võib kokku võtta järgmiselt:

<table>
  <thead>
    <tr>
      <th>SQL `NOT`</th>
      <th>SQL `AND`</th>
      <th>SQL `OR`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Tagastab ainult need kirjed, mis ei vasta märgitud tingimusele</td>
      <td>Tagastab kirjed, mis vastavad kõigile märgitud tingimustele</td>
      <td>Tagastab kirjed, mis vastavad vähemalt ühele märgitud tingimusele</td>
    </tr>
    <tr>
      <td>Tühistab tingimuse, mis ei ole otsingu jaoks oluline</td>
      <td>Kombineerib tingimusi, et kitsendada otsingut objektidele, mis vastavad mitmele otsingukriteeriumile</td>
      <td>Piirab otsingutulemusi objektidele, mis vastavad vähemalt ühele mitmest kriteeriumist</td>
    </tr>
  </tbody>
</table>

Tip Soovid [SQL-i](https://www.ionos.com/et-ee/digitalguide/server/oskusteave/mis-on-sql/) põhjalikumalt uurida, kuid oled alles algaja? Siis vaata meie [näidetega varustatud SQL-i sissejuhatust](https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-i-sissejuhatus-naeidetega/).

## Milline on SQL-i käsu `NOT` süntaks?

SQL-i `NOT` põhisüntaks on järgmine:

```sql
SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
```

Parameetrit `NOT` saab kasutada koos järgmiste parameetritega:

- `SELECT`: Määrab, millised veerud tuleks otsingusse kaasata. Tärniga `*` saate otsida kogu tabelis. Samuti saate määrata üksikuid veerge nende põhivõtmete ja võõrvõtmete abil.
- `FROM`: Määrab tabeli, milles soovite otsida.
- `WHERE`: Määrab tingimused, mida soovite kasutada otsingu kitsendamiseks. Siin saate kasutada `NOT`.
- `NOT`: Koos `WHERE` -ga määratakse, milliseid otsingutulemusi ei tohiks kaasata.

Kui soovid oma otsingutulemusi veelgi täpsemaks muuta, võid kasutada ka valikuid `AND` ja `OR`.

### SQL `NOT` koos `AND`-ga

Võid kombineerida `NOT` ja `AND`, et välistada tulemused, mis vastavad kahele või enamale tingimusele.

```sql
SELECT  *
FROM  table
WHERE  NOT  (condition1  AND  condition2)
```

### SQL `NOT` koos `OR`-ga

Võid kombineerida `NOT` ja `OR`, et välistada tulemused, mis vastavad **vähemalt ühele tingimusele**.

```sql
SELECT  *
FROM  table
WHERE  NOT  (condition1  OR  condition2)
```

## Milleks kasutatakse SQL `NOT`?

`NOT` -l on päringutes ja otsingutes **lugematu hulk kasutusvõimalusi**. Nende hulka kuuluvad:

- Klientide, tellimuste või toodetega seotud andmete väljajätmine piirkonna, aasta, kategooria, hinna või mõne muu tunnuse alusel
- Ebaõigete või puuduvate väärtustega andmete ignoreerimine
- Filtreerida finantsandmeid, mis ei vasta teatud tehingukriteeriumidele
- Teatud osakonnas mitte töötavate töötajate andmete väljajätmine
- Teatud kvalifikatsioonita kandidaatide väljajätmine

### Näited SQL-ist `NOT`

`NOT` otsingud võivad olenevalt kasutusjuhtumist oluliselt erineda. Otsustavateks teguriteks on see, kuidas määratleda tingimus `WHERE` klausliga, `NOT` operaatoriga ja muude valikuliste operaatoritega. Allpool toome **kolm näidet**.

### Töötajate väljajätmine piirkonna alusel

Oletame, et töötate tabeliga nimega „Töötajad” ja soovite näha ainult neid töötajaid, kes **ei ela Ühendkuningriigis**. Selleks kasutage veergu „Riik”, lauset `WHERE`, operaatorit `NOT` ja võrdlusoperaatorit `=`.

```sql
SELECT  *
FROM  Customers
WHERE  NOT  (Country  =  'UK')
```

Või kui soovid vaadata, millised **tooted on otsas**, näeks see välja umbes nii:

```sql
SELECT  *
FROM  Products
WHERE  NOT  (Inventory  >  0)
```

### Klientide filtreerimine

Selles näites otsime klientide rühma, kes **ei vasta teatud kriteeriumidele**. Oletame, et sa ei soovi näha kliente, kes on alla 30-aastased ja elavad Cardiffis. See näeks välja järgmiselt:

```sql
SELECT  *
FROM  Customers
WHERE  NOT  (Age  <  30  AND  City  =  'Cardiff')
```

### Ebapiisava kvalifikatsiooniga kandidaatide väljajätmine

Oletame, et soovite välistada kõik kandidaadid, kellel pole bakalaureusekraadi ega vähemalt kolmeaastast töökogemust. Selline otsing näeks välja järgmine:

```sql
SELECT  *
FROM  Applicants
WHERE  NOT  (Degree  =  ´Bachelor´  OR  Experience  <  3)
```

## Millised on SQL `NOT` alternatiivid?

SQL `NOT` on ainus operaator, mis kasutab negatsiooni otsingukriteeriumide filtreerimiseks. Kuna SQL `NOT` on aga mitmekülgne SQL-operaator, saab seda kombineerida erinevate SQL-käskudega, et teostada **täpseid päringuid**. Nende käskude hulka kuuluvad SQL JOIN ja SQL `HAVING`, nagu [SQL SUM](https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-sum/) ja `AVG`. Seda saab kombineerida ka võrdlusoperaatoritega, nagu `=`, `>` ja SQL LIKE, ning loogiliste operaatoritega `AND` ja `OR`.


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