SQL NOT je logični operator, ki omogoča učin­ko­vi­to in natančno fil­tri­ra­nje re­zul­ta­tov iskanja z iz­klju­či­tvi­jo. Z ope­ra­tor­jem NOT lahko iz­klju­či­te podatke, ki ne iz­pol­nju­je­jo do­lo­če­ne­ga pogoja, in tako omejite rezultate na re­le­van­tne in­for­ma­ci­je.

Kaj je operator SQL NOT?

Poleg ope­ra­tor­jev OR in AND je tudi operator NOT eden od logičnih ope­ra­tor­jev v jeziku SQL, ki se lahko uporablja za obli­ko­va­nje pogojev in meril za poizvedbe podatkov. Medtem ko ope­ra­tor­ja AND in OR vrneta elemente iz po­dat­kov­nih nizov, ki iz­pol­nju­je­jo vse ali enega od pogojev, NOT temelji na iz­klju­či­tvi. Iz re­zul­ta­tov iskanja izloči vse in­for­ma­ci­je, ki ne iz­pol­nju­je­jo do­lo­če­ne­ga pogoja.

SQL NOT se pogosto uporablja skupaj z SELECT, WHERE in SQL HAVING. Za še na­tanč­nej­še iskanje lahko združite NOT z AND in OR. Na ta način boste izločili ne­po­memb­ne rezultate.

Kakšna je razlika med standardi SQL NOT, AND in OR?

Glavne razlike med SQL NOT, AND in OR lahko povzamemo takole:

SQL NOT SQL AND SQL OR
Vrne samo elemente, ki ne iz­pol­nju­je­jo na­ve­de­ne­ga pogoja Vrne elemente, ki iz­pol­nju­je­jo vse navedene pogoje Vrne elemente, ki iz­pol­nju­je­jo vsaj enega od navedenih pogojev
Negira pogoj, ki ni re­le­van­ten za iskanje Združi pogoje, da se iskanje omeji na elemente, ki ustrezajo več iskalnim merilom Omeji rezultate iskanja na elemente, ki iz­pol­nju­je­jo vsaj eno od več meril
Tip

Želite se poglobiti v SQL, a ste še vedno začetnik? Oglejte si naš uvod v SQL s primeri.

Kakšna je sintaksa SQL-ja NOT?

Osnovna sintaksa SQL NOT je naslednja:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

Z NOT se lahko upo­ra­blja­jo naslednji parametri:

  • SELECT: Določa, katere stolpce naj se vključijo v iskanje. Z zvezdico * lahko iščete po celotni tabeli. Posamezne stolpce lahko določite tudi s pomočjo njihovih primarnih in tujih ključev.
  • FROM: Določa tabelo, v kateri želite iskati.
  • WHERE: Določa pogoje, ki jih želite uporabiti za zožitev iskanja. Tukaj lahko uporabite NOT.
  • NOT: V kom­bi­na­ci­ji s WHERE določite, kateri rezultati iskanja naj ne bodo vključeni.

Če želite, da so vaši rezultati iskanja še na­tanč­nej­ši, lahko uporabite tudi AND in OR.

SQL NOT v kom­bi­na­ci­ji s AND

Številki NOT in AND lahko združite, da izločite rezultate, ki iz­pol­nju­je­jo dva ali več pogojev.

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

SQL NOT v kom­bi­na­ci­ji s OR

Številki NOT in OR lahko združite, da izločite rezultate, ki iz­pol­nju­je­jo vsaj en pogoj.

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

Za kaj se uporablja SQL NOT?

SQL NOT ima v po­i­zved­bah in iskanjih nešteto uporabnih možnosti. Mednje spadajo:

  • Iz­klju­či­tev podatkov o strankah, naročilih ali izdelkih na podlagi regije, leta, ka­te­go­ri­je, cene ali druge zna­čil­no­sti
  • Igno­ri­ra­nje podatkov, ki vsebujejo ne­ve­ljav­ne ali manj­ka­jo­če vrednosti
  • Fil­tri­ra­nje finančnih podatkov, ki ne iz­pol­nju­je­jo določenih tran­sak­cij­skih meril
  • Iz­klju­či­tev podatkov za zaposlene, ki niso v določenem oddelku
  • Izločanje kan­di­da­tov, ki nimajo določenih kva­li­fi­ka­cij

Primeri SQL NOT

Iskanja s pomočjo SQL NOT se lahko zelo raz­li­ku­je­jo glede na konkretni primer uporabe. Odločilni dejavniki so način opre­de­li­tve pogoja s klavzulo WHERE, ope­ra­tor­jem NOT in drugimi ne­ob­ve­zni­mi ope­ra­tor­ji. V na­da­lje­va­nju vam bomo pred­sta­vi­li tri primere.

Iz­klju­či­tev za­po­sle­nih po regijah

Recimo, da delate v tabeli z imenom »Zaposleni« in želite prikazati le tiste zaposlene, ki ne živijo v Združenem kra­lje­stvu. Za to uporabite stolpec »Država«, klavzulo WHERE, operator NOT in pri­mer­jal­ni operator =.

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

Ali pa če bi želeli videti, kateri izdelki so raz­pro­da­ni, bi to izgledalo podobno:

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

Fil­tri­ra­nje strank

V tem primeru bomo poiskali skupino strank, ki ne iz­pol­nju­je­jo določenih meril. Recimo, da ne želite videti strank, ki so mlajše od 30 let in živijo v Cardiffu. To bi izgledalo takole:

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

Izločanje premalo uspo­so­blje­nih kan­di­da­tov

Recimo, da želite izločiti vse kandidate, ki nimajo niti diplome niti vsaj treh let delovnih izkušenj. Iskanje bi izgledalo takole:

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

Katere so nekatere al­ter­na­ti­ve za SQL NOT?

SQL NOT je edini operator, ki za fil­tri­ra­nje iskalnih meril uporablja negacijo. Ker pa je SQL NOT vse­stran­ski SQL-operator, ga je mogoče kom­bi­ni­ra­ti z raz­lič­ni­mi SQL-ukazi za izvajanje natančnih poizvedb. Ti ukazi vklju­ču­je­jo SQL JOIN in HAVING funkcije SQL HAVING, kot sta SQL SUM in AVG. Kom­bi­ni­ra­ti ga je mogoče tudi s pri­mer­jal­ni­mi ope­ra­ter­ji, kot so =, > in SQL LIKE, ter logičnimi ope­ra­ter­ji AND in OR.

Go to Main Menu