SQL NOT on looginen ope­raat­to­ri, joka mah­dol­lis­taa ha­ku­tu­los­ten tehokkaan ja tarkan suo­dat­ta­mi­sen pois­sul­ke­mi­sen avulla. Voit käyttää NOT jät­tääk­se­si pois tiedot, jotka eivät täytä tiettyä ehtoa, ja ra­joit­taak­se­si tulokset vain olen­nai­siin tietoihin.

Mikä on SQL NOT -ope­raat­to­ri?

SQL-kielessä ope­raat­to­rit OR, AND ja NOT kuuluvat niihin loogisiin ope­raat­to­rei­hin, joita voidaan käyttää tie­to­ky­se­ly­jen ehtojen ja kri­tee­rien muo­toi­luun. Kun ope­raat­to­rit AND ja OR pa­laut­ta­vat tie­to­jou­kois­ta ne kohteet, jotka täyttävät kaikki tai yhden ehdon, NOT perustuu pois­sul­ke­mi­seen. Se jättää ha­ku­tu­lok­sis­ta pois kaikki tiedot, jotka eivät täytä tiettyä ehtoa.

SQL NOT käytetään usein yhdessä SELECT, WHERE ja SQL HAVING kanssa. Voit yhdistää NOT AND ja OR kanssa, jotta hakusi olisi vielä tarkempi. Näin suodatat pois epä­olen­nai­set tulokset.

Mitä eroa on SQL NOT:llä, AND llä ja OR?

SQL-ver­sioi­den NOT, AND ja OR tär­keim­mät erot voidaan tiivistää seu­raa­vas­ti:

SQL NOT SQL AND SQL OR
Palauttaa vain kohteet, jotka eivät täytä mää­ri­tet­tyä ehtoa Palauttaa kohteet, jotka täyttävät kaikki mää­ri­te­tyt ehdot Palauttaa kohteet, jotka täyttävät vähintään yhden mää­ri­tel­lyis­tä ehdoista
Kumoaa ehdon, joka ei ole mer­ki­tyk­sel­li­nen haulle Yhdistää ehdot, jotta haku rajataan koh­tei­siin, jotka vastaavat useita ha­kueh­to­ja Rajoittaa ha­ku­tu­lok­set koh­tei­siin, jotka täyttävät vähintään yhden useista kri­tee­reis­tä
Vinkki

Haluatko perehtyä SQL: ään tarkemmin, mutta olet vielä aloit­te­li­ja? Tutustu sitten esi­merk­ke­jä si­säl­tä­vään SQL-esit­te­lyym­me.

Mikä on SQL-lauseen NOT syntaksi?

SQL NOT:n pe­rus­ra­ken­teet ovat seuraavat:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

Seuraavia pa­ra­met­re­ja voidaan käyttää komennon NOT kanssa:

  • SELECT: Määrittää, mitkä sarakkeet si­säl­ly­te­tään hakuun. Voit käyttää tähteä * koko taulukon ha­ke­mi­seen. Voit myös määrittää yk­sit­täi­siä sa­rak­kei­ta niiden en­si­si­jais­ten ja vii­tea­vain­ten avulla.
  • FROM: Määrittää taulukon, josta haluat tehdä haun.
  • WHERE: Määrittää ehdot, joita haluat käyttää haun ra­jaa­mi­seen. Tässä voit käyttää NOT.
  • NOT: Yhdessä WHERE kanssa mää­ri­te­tään, mitkä ha­ku­tu­lok­set eivät kuulu ha­ku­tu­lok­siin.

Jos haluat tarkentaa ha­ku­tu­lok­sia en­ti­ses­tään, voit käyttää myös AND ja OR.

SQL NOT yh­dis­tet­ty­nä versioon AND

Voit yhdistää NOT ja AND sul­keak­se­si pois tulokset, jotka täyttävät kaksi tai useampia ehtoja.

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

SQL NOT yh­dis­tet­ty­nä OReen

Voit yhdistää NOT ja OR sul­keak­se­si pois tulokset, jotka täyttävät vähintään yhden ehdon.

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

Mihin SQL NOT käytetään?

SQL NOT:llä on lu­ke­mat­to­mia käyt­tö­tar­koi­tuk­sia ky­se­lyis­sä ja hauissa. Niitä ovat muun muassa:

  • Asiak­kai­hin, ti­lauk­siin tai tuot­tei­siin liit­ty­vien tietojen suo­dat­ta­mi­nen alueen, vuoden, luokan, hinnan tai muun omi­nai­suu­den pe­rus­teel­la
  • Ohitetaan tiedot, jotka si­säl­tä­vät vir­heel­li­siä tai puuttuvia arvoja
  • Suo­da­te­taan ta­lous­da­ta, joka ei täytä tiettyjä tran­sak­tiok­ri­tee­re­jä
  • Tiettyyn osastoon kuu­lu­mat­to­mien työn­te­ki­jöi­den tietojen pois­sul­ke­mi­nen
  • Suo­da­te­taan pois hakijat, joilla ei ole tiettyjä pä­te­vyyk­siä

Esi­merk­ke­jä SQL NOT:stä

SQL NOT lla tehtävät haut voivat vaihdella huo­mat­ta­vas­ti käyt­tö­tar­koi­tuk­ses­ta riippuen. Rat­kai­se­via tekijöitä ovat se, miten ehto mää­ri­tel­lään WHERE ella, NOT ja muilla va­lin­nai­sil­la ope­raat­to­reil­la. Seu­raa­vas­sa esi­tel­lään kolme esi­merk­kiä.

Työn­te­ki­jöi­den pois­sul­ke­mi­nen alueen pe­rus­teel­la

Oletetaan, että työs­ken­te­let tau­lu­kos­sa nimeltä ”Employees” ja haluat nähdä vain ne työn­te­ki­jät, jotka eivät asu Isossa-Bri­tan­nias­sa. Tätä varten käytä ”Country”-saraketta, lause­ket­ta WHERE, ope­raat­to­ria NOT ja ver­tai­luo­pe­raat­to­ria =.

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

Tai jos haluaisit nähdä, mitkä tuotteet ovat loppu va­ras­tos­ta, se näyttäisi tältä:

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

Asiak­kai­den suo­dat­ta­mi­nen

Tässä esi­mer­kis­sä etsimme asia­kas­ryh­mää, joka ei täytä tiettyjä ehtoja. Oletetaan, että et halua nähdä asiak­kai­ta, jotka ovat alle 30-vuotiaita ja asuvat Car­dif­fis­sa. Hakuehto näyttäisi seu­raa­val­ta:

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

Epä­pä­te­vien ha­ki­joi­den kar­si­mi­nen

Oletetaan, että haluat sulkea pois kaikki hakijat, joilla ei ole kan­di­daa­tin tutkintoa tai vähintään kolmen vuoden työ­ko­ke­mus­ta. Ha­kuk­ri­tee­rit näyt­täi­si­vät seu­raa­val­ta:

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

Mitä vaih­toeh­to­ja SQL NOT:lle on?

SQL NOT on ainoa ope­raat­to­ri, joka käyttää ne­gaa­tio­ta ha­kueh­to­jen suo­dat­ta­mi­seen. Mutta koska SQL NOT on mo­ni­puo­li­nen SQL-ope­raat­to­ri, se voidaan yhdistää eri­lai­siin SQL-ko­men­toi­hin tarkkojen kyselyjen suo­rit­ta­mi­sek­si. Näitä komentoja ovat muun muassa SQL JOIN ja SQL HAVING, kuten SQL SUM ja AVG. Se voidaan yhdistää myös ver­tai­luo­pe­raat­to­rei­hin, kuten =, > ja SQL LIKE, sekä loogisiin ope­raat­to­rei­hin AND ja OR.

Siirry pää­va­lik­koon