Kako uporabljati SQL `NOT`
SQL NOT je logični operator, ki omogoča učinkovito in natančno filtriranje rezultatov iskanja z izključitvijo. Z operatorjem NOT lahko izključite podatke, ki ne izpolnjujejo določenega pogoja, in tako omejite rezultate na relevantne informacije.
Kaj je operator SQL NOT?
Poleg operatorjev OR in AND je tudi operator NOT eden od logičnih operatorjev v jeziku SQL, ki se lahko uporablja za oblikovanje pogojev in meril za poizvedbe podatkov. Medtem ko operatorja AND in OR vrneta elemente iz podatkovnih nizov, ki izpolnjujejo vse ali enega od pogojev, NOT temelji na izključitvi. Iz rezultatov iskanja izloči vse informacije, ki ne izpolnjujejo določenega pogoja.
SQL NOT se pogosto uporablja skupaj z SELECT, WHERE in SQL HAVING. Za še natančnejše iskanje lahko združite NOT z AND in OR. Na ta način boste izločili nepomembne 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 izpolnjujejo navedenega pogoja | Vrne elemente, ki izpolnjujejo vse navedene pogoje | Vrne elemente, ki izpolnjujejo vsaj enega od navedenih pogojev |
| Negira pogoj, ki ni relevanten za iskanje | Združi pogoje, da se iskanje omeji na elemente, ki ustrezajo več iskalnim merilom | Omeji rezultate iskanja na elemente, ki izpolnjujejo vsaj eno od več meril |
Ž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)sqlZ NOT se lahko uporabljajo 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 uporabiteNOT.NOT: V kombinaciji sWHEREdoločite, kateri rezultati iskanja naj ne bodo vključeni.
Če želite, da so vaši rezultati iskanja še natančnejši, lahko uporabite tudi AND in OR.
SQL NOT v kombinaciji s AND
Številki NOT in AND lahko združite, da izločite rezultate, ki izpolnjujejo dva ali več pogojev.
SELECT *
FROM table
WHERE NOT (condition1 AND condition2)sqlSQL NOT v kombinaciji s OR
Številki NOT in OR lahko združite, da izločite rezultate, ki izpolnjujejo vsaj en pogoj.
SELECT *
FROM table
WHERE NOT (condition1 OR condition2)sqlZa kaj se uporablja SQL NOT?
SQL NOT ima v poizvedbah in iskanjih nešteto uporabnih možnosti. Mednje spadajo:
- Izključitev podatkov o strankah, naročilih ali izdelkih na podlagi regije, leta, kategorije, cene ali druge značilnosti
- Ignoriranje podatkov, ki vsebujejo neveljavne ali manjkajoče vrednosti
- Filtriranje finančnih podatkov, ki ne izpolnjujejo določenih transakcijskih meril
- Izključitev podatkov za zaposlene, ki niso v določenem oddelku
- Izločanje kandidatov, ki nimajo določenih kvalifikacij
Primeri SQL NOT
Iskanja s pomočjo SQL NOT se lahko zelo razlikujejo glede na konkretni primer uporabe. Odločilni dejavniki so način opredelitve pogoja s klavzulo WHERE, operatorjem NOT in drugimi neobveznimi operatorji. V nadaljevanju vam bomo predstavili tri primere.
Izključitev zaposlenih po regijah
Recimo, da delate v tabeli z imenom »Zaposleni« in želite prikazati le tiste zaposlene, ki ne živijo v Združenem kraljestvu. Za to uporabite stolpec »Država«, klavzulo WHERE, operator NOT in primerjalni operator =.
SELECT *
FROM Customers
WHERE NOT (Country = 'UK')sqlAli pa če bi želeli videti, kateri izdelki so razprodani, bi to izgledalo podobno:
SELECT *
FROM Products
WHERE NOT (Inventory > 0)sqlFiltriranje strank
V tem primeru bomo poiskali skupino strank, ki ne izpolnjujejo 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')sqlIzločanje premalo usposobljenih kandidatov
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)sqlKatere so nekatere alternative za SQL NOT?
SQL NOT je edini operator, ki za filtriranje iskalnih meril uporablja negacijo. Ker pa je SQL NOT vsestranski SQL-operator, ga je mogoče kombinirati z različnimi SQL-ukazi za izvajanje natančnih poizvedb. Ti ukazi vključujejo SQL JOIN in HAVING funkcije SQL HAVING, kot sta SQL SUM in AVG. Kombinirati ga je mogoče tudi s primerjalnimi operaterji, kot so =, > in SQL LIKE, ter logičnimi operaterji AND in OR.