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 operatoriai OR 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:
SQL NOT |
SQL AND |
SQL OR |
|---|---|---|
| Grąžina tik tuos elementus, kurie neatitinka 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ų susiaurinta iki elementų, atitinkančių kelis paieškos kriterijus | Siaurina paieškos rezultatus iki elementų, kurie atitinka bent vieną iš kelių kriterijų |
Norite giliau pasinerti į SQL, bet vis dar esate pradedantysis? Tuomet susipažinkite su mūsų SQL įvadu su pavyzdžiais.
Kokia yra SQL NOT sintaksė?
Pagrindinė SQL NOT sintaksė atrodo taip:
SELECT *
FROM table
WHERE NOT (searchcriteria)sqlSu 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 naudotiNOT.NOT: Kartu suWHEREnurodo, 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ų.
SELECT *
FROM table
WHERE NOT (condition1 AND condition2)sqlSQL NOT kartu su OR
Galite sujungti NOT ir OR, kad būtų atmesti rezultatai, atitinkantys bent vieną sąlygą.
SELECT *
FROM table
WHERE NOT (condition1 OR condition2)sqlKam 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ų =.
SELECT *
FROM Customers
WHERE NOT (Country = 'UK')sqlArba jei norėtumėte pamatyti, kokių prekių nėra sandėlyje, tai atrodytų panašiai:
SELECT *
FROM Products
WHERE NOT (Inventory > 0)sqlKlientų 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:
SELECT *
FROM Customers
WHERE NOT (Age < 30 AND City = 'Cardiff')sqlAtranka, 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:
SELECT *
FROM Applicants
WHERE NOT (Degree = ´Bachelor´ OR Experience < 3)sqlKokios 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 ir AVG. Jį taip pat galima derinti su palyginimo operatoriais, pvz., =, > ir SQL LIKE, bei loginiais operatoriais AND ir OR.