SQL-operaator NOT on loogiline operaator, mis võimaldab ot­sin­gu­tu­le­musi tõhusalt ja täpselt filt­ree­rida vä­lis­ta­mise teel. Ope­raa­to­rit NOT saab kasutada tin­gi­mus­tele mit­te­vas­ta­vate andmete väl­ja­jät­miseks, piirates tulemusi as­ja­ko­hase teabega.

Mis on NOT 10-operaator?

Nagu SQL-i ope­raa­to­rid OR ja AND, on ka operaator NOT üks SQL-i loo­gi­lis­test ope­raa­to­ri­test, mida saab kasutada and­me­pä­rin­gute tin­gi­muste ja kri­tee­riumide koos­ta­miseks. Kui ope­raa­to­rid AND ja OR ta­gas­ta­vad and­me­ko­gu­mi­test need kirjed, mis vastavad kõigile või ühele tin­gi­mu­sele, siisNOT põhineb vä­lis­ta­misel. See jätab ot­sin­gu­tu­le­mus­test välja kogu teabe, mis ei vasta teatud tin­gi­mu­sele.

SQL NOT ka­su­ta­takse sageli koos SELECT, WHERE ja SQL HAVING. Saad kom­bi­nee­rida NOT, AND ja OR, et muuta oma otsing veelgi täpsemaks. Nii filt­ree­rid välja eba­olu­li­sed tulemused.

Mis vahe on SQL NOT, AND ja OR vahel?

SQL-i ver­sioo­nide NOT, AND ja OR peamised eri­ne­vu­sed võib kokku võtta järg­mi­selt:

SQL NOT SQL AND SQL OR
Tagastab ainult need kirjed, mis ei vasta märgitud tin­gi­mu­sele Tagastab kirjed, mis vastavad kõigile märgitud tin­gi­mus­tele Tagastab kirjed, mis vastavad vähemalt ühele märgitud tin­gi­mu­sele
Tühistab tingimuse, mis ei ole otsingu jaoks oluline Kom­bi­nee­rib tingimusi, et kit­sen­dada otsingut ob­jek­ti­dele, mis vastavad mitmele ot­sin­gukri­tee­riu­mile Piirab ot­sin­gu­tu­le­musi ob­jek­ti­dele, mis vastavad vähemalt ühele mitmest kri­tee­riu­mist
Tip

Soovid SQL-i põh­ja­li­ku­malt uurida, kuid oled alles algaja? Siis vaata meie näidetega va­rus­ta­tud SQL-i sis­se­ju­ha­tust.

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

SQL-i NOT põ­hisün­taks on järgmine:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

Pa­ra­meet­rit NOT saab kasutada koos järgmiste pa­ra­meet­ri­tega:

  • SELECT: Määrab, millised veerud tuleks ot­sin­gusse kaasata. Tärniga * saate otsida kogu tabelis. Samuti saate määrata üksikuid veerge nende põ­hi­võt­mete ja võõr­võt­mete abil.
  • FROM: Määrab tabeli, milles soovite otsida.
  • WHERE: Määrab tin­gi­mu­sed, mida soovite kasutada otsingu kit­sen­da­miseks. Siin saate kasutada NOT.
  • NOT: Koos WHERE -ga mää­ra­takse, milliseid ot­sin­gu­tu­le­musi ei tohiks kaasata.

Kui soovid oma ot­sin­gu­tu­le­musi veelgi täpsemaks muuta, võid kasutada ka valikuid AND ja OR.

SQL NOT koos AND-ga

Võid kom­bi­nee­rida NOT ja AND, et välistada tulemused, mis vastavad kahele või enamale tin­gi­mu­sele.

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

SQL NOT koos OR-ga

Võid kom­bi­nee­rida NOT ja OR, et välistada tulemused, mis vastavad vähemalt ühele tin­gi­mu­sele.

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

Milleks ka­su­ta­takse SQL NOT?

NOT -l on pä­rin­gu­tes ja ot­sin­gu­tes lugematu hulk ka­su­tus­või­ma­lusi. Nende hulka kuuluvad:

  • Klientide, tel­li­muste või toodetega seotud andmete väl­ja­jät­mine piirkonna, aasta, ka­te­goo­ria, hinna või mõne muu tunnuse alusel
  • Ebaõigete või puuduvate väär­tus­tega andmete ig­no­ree­ri­mine
  • Filt­ree­rida fi­nants­and­meid, mis ei vasta teatud te­hin­gukri­tee­riumi­dele
  • Teatud osakonnas mitte töötavate töötajate andmete väl­ja­jät­mine
  • Teatud kva­li­fi­kat­sioo­nita kan­di­daa­tide väl­ja­jät­mine

Näited SQL-ist NOT

NOT otsingud võivad olenevalt ka­su­tus­juh­tu­mist oluliselt erineda. Ot­sus­ta­va­teks te­gu­ri­teks on see, kuidas mää­rat­leda tingimus WHERE klausliga, NOT ope­raa­toriga ja muude va­li­ku­liste ope­raa­to­ri­tega. Allpool toome kolm näidet.

Töötajate väl­ja­jät­mine piirkonna alusel

Oletame, et töötate tabeliga nimega „Töötajad” ja soovite näha ainult neid töötajaid, kes ei ela Ühend­ku­ning­rii­gis. Selleks kasutage veergu „Riik”, lauset WHERE, ope­raa­to­rit NOT ja võrd­lusope­raa­to­rit =.

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

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

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

Klientide filt­ree­ri­mine

Selles näites otsime klientide rühma, kes ei vasta teatud kri­tee­riumi­dele. Oletame, et sa ei soovi näha kliente, kes on alla 30-aastased ja elavad Cardiffis. See näeks välja järg­mi­selt:

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

Eba­pii­sava kva­li­fi­kat­sioo­niga kan­di­daa­tide väl­ja­jät­mine

Oletame, et soovite välistada kõik kan­di­daa­did, kellel pole ba­ka­lau­reusekraadi ega vähemalt kol­me­aas­tast töö­ko­ge­must. Selline otsing näeks välja järgmine:

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

Millised on SQL NOT al­ter­na­tiivid?

SQL NOT on ainus operaator, mis kasutab ne­gat­siooni ot­sin­gukri­tee­riumide filt­ree­ri­miseks. Kuna SQL NOT on aga mit­me­külgne SQL-operaator, saab seda kom­bi­nee­rida erinevate SQL-käskudega, et teostada täpseid päringuid. Nende käskude hulka kuuluvad SQL JOIN ja SQL HAVING, nagu SQL SUM ja AVG. Seda saab kom­bi­nee­rida ka võrd­lusope­raa­to­ri­tega, nagu =, > ja SQL LIKE, ning loo­gi­liste ope­raa­to­ri­tega AND ja OR.

Go to Main Menu