SQL NOT yra loginis ope­ra­to­rius, lei­džian­tis veiks­min­gai ir tiksliai filtruoti paieškos re­zul­ta­tus, taikant išimtis. Naudodami ope­ra­to­rių NOT galite pašalinti duomenis, kurie ne­ati­tin­ka sąlygos, ir taip apriboti re­zul­ta­tus tik iki aktualios in­for­ma­ci­jos.

Kas yra SQL NOT ope­ra­to­rius?

Kaip ir SQL ope­ra­to­riai OR bei AND, ope­ra­to­rius NOT yra vienas iš SQL loginių ope­ra­to­rių, kurį galima naudoti for­mu­luo­jant duomenų užklausų sąlygas ir kri­te­ri­jus. Ope­ra­to­riai 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ą in­for­ma­ci­ją, kuri ne­ati­tin­ka tam tikros sąlygos.

SQL NOT dažnai nau­do­ja­mas kartu su SELECT, WHERE ir SQL HAVING. Galite derinti NOT su AND ir OR, kad paieška būtų dar tikslesnė. Taip at­si­jo­si­te ne­rei­ka­lin­gus re­zul­ta­tus.

Kuo skiriasi SQL NOT, AND ir OR versijos?

Pag­rin­di­nius SQL NOT, AND ir OR versijų skirtumus galima api­bend­rin­ti taip:

SQL NOT SQL AND SQL OR
Grąžina tik tuos elementus, kurie ne­ati­tin­ka nurodytos sąlygos Grąžina elementus, kurie atitinka visas nurodytas sąlygas Grąžina elementus, kurie atitinka bent vieną iš nurodytų sąlygų
Panaikina sąlygą, kuri nėra aktuali paieškai Sujungia sąlygas, kad paieška būtų su­siau­rin­ta iki elementų, ati­tin­kan­čių kelis paieškos kri­te­ri­jus Siaurina paieškos re­zul­ta­tus iki elementų, kurie atitinka bent vieną iš kelių kriterijų
Tip

Norite giliau pasinerti į SQL, bet vis dar esate pra­de­dan­ty­sis? Tuomet su­si­pa­žin­ki­te su mūsų SQL įvadu su pa­vyz­džiais.

Kokia yra SQL NOT sintaksė?

Pag­rin­di­nė SQL NOT sintaksė atrodo taip:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

Su NOT galima naudoti šiuos pa­ra­met­rus:

  • SELECT: Nurodo, kurios stul­pe­liai turi būti įtraukti į paiešką. Naudodami žvaigž­du­tę * galite ieškoti visoje lentelėje. Taip pat galite nurodyti atskirus stul­pe­lius pagal jų pirminius ir užsienio raktus.
  • FROM: Nurodo lentelę, kurioje norite atlikti paiešką.
  • WHERE: Nurodo sąlygas, kurias norite naudoti, kad su­siau­rin­tu­mė­te paiešką. Čia galite naudoti NOT.
  • NOT: Kartu su WHERE nurodo, kokie paieškos re­zul­ta­tai neturėtų būti įtraukti.

Jei norite, kad paieškos re­zul­ta­tai 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 re­zul­ta­tai, ati­tin­kan­tys dvi ar daugiau sąlygų.

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

SQL NOT kartu su OR

Galite sujungti NOT ir OR, kad būtų atmesti re­zul­ta­tai, ati­tin­kan­tys bent vieną sąlygą.

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

Kam nau­do­ja­mas SQL NOT?

SQL NOT turi begalę pri­tai­ky­mo galimybių už­klau­so­se ir paieškose. Tarp jų yra:

  • Duomenų, susijusių su klientais, už­sa­ky­mais ar pro­duk­tais, atranka pagal regioną, metus, ka­te­go­ri­ją, kainą ar kitą požymį
  • Ig­no­ruo­ja­mi duomenys, kuriuose yra ne­tei­sin­gos arba trūks­ta­mos reikšmės
  • Fil­t­ruo­jant fi­nan­si­nius duomenis, kurie ne­ati­tin­ka tam tikrų sandorių kriterijų
  • Išskirti duomenis apie dar­buo­to­jus, kurie ne­pri­klau­so tam tikram skyriui
  • Atsijoti kan­di­da­tus, ne­tu­rin­čius tam tikrų kva­li­fi­ka­ci­jų

SQL pa­vyz­džiai NOT

Paieškos naudojant SQL NOT gali labai skirtis pri­klau­so­mai nuo konk­re­taus atvejo. Lemiamus veiksnius lemia tai, kaip api­brė­žia­te sąlygą naudojant WHERE sąlygos dalį, NOT ope­ra­to­rius ir kitus ne­pri­va­lo­mus ope­ra­to­rius. Toliau pa­teik­si­me tris pa­vyz­džius.

Dar­buo­to­jų atranka pagal regioną

Tarkime, kad dirbate su lentele „Dar­buo­to­jai“ ir norite matyti tik tuos dar­buo­to­jus, kurie negyvena Jung­ti­nė­je Ka­ra­lys­tė­je. Tam naudokite stulpelį „Šalis“, sąlygą WHERE, ope­ra­to­rius NOT ir pa­ly­gi­ni­mo ope­ra­to­rių =.

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

Arba jei no­rė­tu­mė­te pamatyti, kokių prekių nėra sandėlyje, tai atrodytų panašiai:

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

Klientų fil­t­ra­vi­mas

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

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

Atranka, kuria atmetami ne­pa­kan­ka­mai kva­li­fi­kuo­ti kan­di­da­tai

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

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

Kokios yra SQL NOT al­ter­na­ty­vos?

SQL NOT yra vie­nin­te­lis ope­ra­to­rius, kuris naudoja neigimą paieškos kri­te­ri­jams filtruoti. Tačiau kadangi SQL NOT yra uni­ver­sa­lus SQL ope­ra­to­rius, jį galima derinti su įvai­rio­mis SQL ko­man­do­mis, kad būtų galima atlikti tikslius už­klau­si­mus. Šios komandos apima SQL JOIN ir SQL HAVING funkcijas, pvz., SQL SUM ir AVG. Jį taip pat galima derinti su pa­ly­gi­ni­mo ope­ra­to­riais, pvz., =, > ir SQL LIKE, bei loginiais ope­ra­to­riais AND ir OR.

Go to Main Menu