# Kaip naudoti SQL operaciją „NOT“

SQL `NOT` yra loginis operatorius, leidžiantis **veiksmingai ir tiksliai filtruoti paieškos rezultatus, taikant išimtis**. Naudodami operatorių `NOT` galite pašalinti duomenis, kurie neatitinka sąlygos, ir taip apriboti rezultatus tik iki aktualios informacijos.

## Kas yra SQL `NOT` operatorius?

Kaip ir [SQL](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/sql-arba/) operatoriai [ `OR`](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/sql-arba/) bei `AND`, operatorius `NOT` yra vienas iš SQL loginių operatorių, kurį galima naudoti formuluojant duomenų užklausų sąlygas ir kriterijus. Operatoriai `AND` ir `OR` grąžina duomenų rinkinių elementus, kurie atitinka visas arba vieną iš sąlygų, o **`NOT` veikia pagal išimties principą**. Jis iš paieškos rezultatų pašalina visą informaciją, kuri *neatitinka* tam tikros sąlygos.

SQL `NOT` dažnai naudojamas kartu su SELECT, WHERE ir SQL `HAVING`. Galite **derinti `NOT` su `AND` ir `OR`**, kad paieška būtų dar tikslesnė. Taip atsijosite nereikalingus rezultatus.

### Kuo skiriasi SQL `NOT`, `AND` ir `OR` versijos?

Pagrindinius SQL `NOT`, `AND` ir `OR` versijų skirtumus galima apibendrinti taip:

<table>
  <thead>
    <tr>
      <th>SQL `NOT`</th>
      <th>SQL `AND`</th>
      <th>SQL `OR`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Grąžina tik tuos elementus, kurie neatitinka nurodytos sąlygos</td>
      <td>Grąžina elementus, kurie atitinka visas nurodytas sąlygas</td>
      <td>Grąžina elementus, kurie atitinka bent vieną iš nurodytų sąlygų</td>
    </tr>
    <tr>
      <td>Panaikina sąlygą, kuri nėra aktuali paieškai</td>
      <td>Sujungia sąlygas, kad paieška būtų susiaurinta iki elementų, atitinkančių kelis paieškos kriterijus</td>
      <td>Siaurina paieškos rezultatus iki elementų, kurie atitinka bent vieną iš kelių kriterijų</td>
    </tr>
  </tbody>
</table>

Tip Norite giliau pasinerti į [SQL](https://www.ionos.com/lt-lt/digitalguide/serveris/zinios/kas-yra-sql/), bet vis dar esate pradedantysis? Tuomet susipažinkite su mūsų [SQL įvadu su pavyzdžiais](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/ivadas-i-sql-su-pavyzdziais/).

## Kokia yra SQL `NOT` sintaksė?

Pagrindinė SQL `NOT` sintaksė atrodo taip:

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

Su `NOT` galima naudoti šiuos parametrus:

- `SELECT`: Nurodo, kurios stulpeliai turi būti įtraukti į paiešką. Naudodami žvaigždutę `*` galite ieškoti visoje lentelėje. Taip pat galite nurodyti atskirus stulpelius pagal jų pirminius ir užsienio raktus.
- `FROM`: Nurodo lentelę, kurioje norite atlikti paiešką.
- `WHERE`: Nurodo sąlygas, kurias norite naudoti, kad susiaurintumėte paiešką. Čia galite naudoti `NOT`.
- `NOT`: Kartu su `WHERE` nurodo, kokie paieškos rezultatai neturėtų būti įtraukti.

Jei norite, kad paieškos rezultatai būtų dar tikslesni, taip pat galite naudoti `AND` ir `OR`.

### SQL `NOT` kartu su `AND`

Galite sujungti `NOT` ir `AND`, kad būtų atmesti rezultatai, atitinkantys dvi ar daugiau sąlygų.

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

### SQL `NOT` kartu su `OR`

Galite sujungti `NOT` ir `OR`, kad būtų atmesti rezultatai, atitinkantys **bent vieną sąlygą**.

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

## Kam naudojamas SQL `NOT`?

SQL `NOT` turi **begalę pritaikymo galimybių** užklausose ir paieškose. Tarp jų yra:

- Duomenų, susijusių su klientais, užsakymais ar produktais, atranka pagal regioną, metus, kategoriją, kainą ar kitą požymį
- Ignoruojami duomenys, kuriuose yra neteisingos arba trūkstamos reikšmės
- Filtruojant finansinius duomenis, kurie neatitinka tam tikrų sandorių kriterijų
- Išskirti duomenis apie darbuotojus, kurie nepriklauso tam tikram skyriui
- Atsijoti kandidatus, neturinčius tam tikrų kvalifikacijų

### SQL pavyzdžiai `NOT`

Paieškos naudojant SQL `NOT` gali labai skirtis priklausomai nuo konkretaus atvejo. Lemiamus veiksnius lemia tai, kaip apibrėžiate sąlygą naudojant `WHERE` sąlygos dalį, `NOT` operatorius ir kitus neprivalomus operatorius. Toliau pateiksime **tris pavyzdžius**.

### Darbuotojų atranka pagal regioną

Tarkime, kad dirbate su lentele „Darbuotojai“ ir norite matyti tik tuos darbuotojus, kurie **negyvena Jungtinėje Karalystėje**. Tam naudokite stulpelį „Šalis“, sąlygą `WHERE`, operatorius `NOT` ir palyginimo operatorių `=`.

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

Arba jei norėtumėte pamatyti, kokių **prekių nėra sandėlyje**, tai atrodytų panašiai:

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

### Klientų filtravimas

Šiame pavyzdyje ieškosime klientų grupės, kuri **neatitinka tam tikrų kriterijų**. Tarkime, nenorite matyti klientų, kurie yra jaunesni nei 30 metų ir gyvena Kardife. Tai atrodytų taip:

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

### Atranka, kuria atmetami nepakankamai kvalifikuoti kandidatai

Tarkime, norite atrinkti visus kandidatus, kurie neturi nei bakalauro laipsnio, nei bent trejų metų darbo patirties. Tokia paieška atrodytų taip:

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

## Kokios yra SQL `NOT` alternatyvos?

SQL `NOT` yra vienintelis operatorius, kuris naudoja neigimą paieškos kriterijams filtruoti. Tačiau kadangi SQL `NOT` yra universalus SQL operatorius, jį galima derinti su įvairiomis SQL komandomis, kad būtų galima atlikti **tikslius užklausimus**. Šios komandos apima SQL JOIN ir SQL `HAVING` funkcijas, pvz., [SQL SUM](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/sql-sum/) ir `AVG`. Jį taip pat galima derinti su palyginimo operatoriais, pvz., `=`, `>` ir SQL LIKE, bei loginiais operatoriais `AND` ir `OR`.


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/sql-not/](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/sql-not/) for AI/LLM consumption.