Kuidas kasutada SQL-i `NOT`-i
SQL-operaator NOT on loogiline operaator, mis võimaldab otsingutulemusi tõhusalt ja täpselt filtreerida välistamise teel. Operaatorit NOT saab kasutada tingimustele mittevastavate andmete väljajätmiseks, piirates tulemusi asjakohase teabega.
Mis on NOT 10-operaator?
Nagu SQL-i operaatorid OR ja AND, on ka operaator NOT üks SQL-i loogilistest operaatoritest, mida saab kasutada andmepäringute tingimuste ja kriteeriumide koostamiseks. Kui operaatorid AND ja OR tagastavad andmekogumitest need kirjed, mis vastavad kõigile või ühele tingimusele, siisNOT põhineb välistamisel. See jätab otsingutulemustest välja kogu teabe, mis ei vasta teatud tingimusele.
SQL NOT kasutatakse sageli koos SELECT, WHERE ja SQL HAVING. Saad kombineerida NOT, AND ja OR, et muuta oma otsing veelgi täpsemaks. Nii filtreerid välja ebaolulised tulemused.
Mis vahe on SQL NOT, AND ja OR vahel?
SQL-i versioonide NOT, AND ja OR peamised erinevused võib kokku võtta järgmiselt:
SQL NOT |
SQL AND |
SQL OR |
|---|---|---|
| Tagastab ainult need kirjed, mis ei vasta märgitud tingimusele | Tagastab kirjed, mis vastavad kõigile märgitud tingimustele | Tagastab kirjed, mis vastavad vähemalt ühele märgitud tingimusele |
| Tühistab tingimuse, mis ei ole otsingu jaoks oluline | Kombineerib tingimusi, et kitsendada otsingut objektidele, mis vastavad mitmele otsingukriteeriumile | Piirab otsingutulemusi objektidele, mis vastavad vähemalt ühele mitmest kriteeriumist |
Soovid SQL-i põhjalikumalt uurida, kuid oled alles algaja? Siis vaata meie näidetega varustatud SQL-i sissejuhatust.
Milline on SQL-i käsu NOT süntaks?
SQL-i NOT põhisüntaks on järgmine:
SELECT *
FROM table
WHERE NOT (searchcriteria)sqlParameetrit NOT saab kasutada koos järgmiste parameetritega:
SELECT: Määrab, millised veerud tuleks otsingusse kaasata. Tärniga*saate otsida kogu tabelis. Samuti saate määrata üksikuid veerge nende põhivõtmete ja võõrvõtmete abil.FROM: Määrab tabeli, milles soovite otsida.WHERE: Määrab tingimused, mida soovite kasutada otsingu kitsendamiseks. Siin saate kasutadaNOT.NOT: KoosWHERE-ga määratakse, milliseid otsingutulemusi ei tohiks kaasata.
Kui soovid oma otsingutulemusi veelgi täpsemaks muuta, võid kasutada ka valikuid AND ja OR.
SQL NOT koos AND-ga
Võid kombineerida NOT ja AND, et välistada tulemused, mis vastavad kahele või enamale tingimusele.
SELECT *
FROM table
WHERE NOT (condition1 AND condition2)sqlSQL NOT koos OR-ga
Võid kombineerida NOT ja OR, et välistada tulemused, mis vastavad vähemalt ühele tingimusele.
SELECT *
FROM table
WHERE NOT (condition1 OR condition2)sqlMilleks kasutatakse SQL NOT?
NOT -l on päringutes ja otsingutes lugematu hulk kasutusvõimalusi. Nende hulka kuuluvad:
- Klientide, tellimuste või toodetega seotud andmete väljajätmine piirkonna, aasta, kategooria, hinna või mõne muu tunnuse alusel
- Ebaõigete või puuduvate väärtustega andmete ignoreerimine
- Filtreerida finantsandmeid, mis ei vasta teatud tehingukriteeriumidele
- Teatud osakonnas mitte töötavate töötajate andmete väljajätmine
- Teatud kvalifikatsioonita kandidaatide väljajätmine
Näited SQL-ist NOT
NOT otsingud võivad olenevalt kasutusjuhtumist oluliselt erineda. Otsustavateks teguriteks on see, kuidas määratleda tingimus WHERE klausliga, NOT operaatoriga ja muude valikuliste operaatoritega. Allpool toome kolm näidet.
Töötajate väljajätmine piirkonna alusel
Oletame, et töötate tabeliga nimega „Töötajad” ja soovite näha ainult neid töötajaid, kes ei ela Ühendkuningriigis. Selleks kasutage veergu „Riik”, lauset WHERE, operaatorit NOT ja võrdlusoperaatorit =.
SELECT *
FROM Customers
WHERE NOT (Country = 'UK')sqlVõi kui soovid vaadata, millised tooted on otsas, näeks see välja umbes nii:
SELECT *
FROM Products
WHERE NOT (Inventory > 0)sqlKlientide filtreerimine
Selles näites otsime klientide rühma, kes ei vasta teatud kriteeriumidele. Oletame, et sa ei soovi näha kliente, kes on alla 30-aastased ja elavad Cardiffis. See näeks välja järgmiselt:
SELECT *
FROM Customers
WHERE NOT (Age < 30 AND City = 'Cardiff')sqlEbapiisava kvalifikatsiooniga kandidaatide väljajätmine
Oletame, et soovite välistada kõik kandidaadid, kellel pole bakalaureusekraadi ega vähemalt kolmeaastast töökogemust. Selline otsing näeks välja järgmine:
SELECT *
FROM Applicants
WHERE NOT (Degree = ´Bachelor´ OR Experience < 3)sqlMillised on SQL NOT alternatiivid?
SQL NOT on ainus operaator, mis kasutab negatsiooni otsingukriteeriumide filtreerimiseks. Kuna SQL NOT on aga mitmekülgne SQL-operaator, saab seda kombineerida 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 kombineerida ka võrdlusoperaatoritega, nagu =, > ja SQL LIKE, ning loogiliste operaatoritega AND ja OR.