SQL NOT is een logische operator die ef­fi­ci­ën­te en nauw­keu­ri­ge filtering van zoek­re­sul­ta­ten mogelijk maakt door middel van uit­slui­ting. U kunt de operator NOT gebruiken om gegevens weg te laten die niet aan een voor­waar­de voldoen, waardoor uw re­sul­ta­ten worden beperkt tot relevante in­for­ma­tie.

Wat is de SQL NOT -operator?

Samen met SQL OR en AND is NOT een van de logische ope­ra­to­ren in SQL die kan worden gebruikt om voor­waar­den en criteria voor ge­ge­vens­query’s te for­mu­le­ren. Terwijl de ope­ra­to­ren AND en OR de items uit datasets re­tour­ne­ren die aan alle of een van de voor­waar­den voldoen, isNOT gebaseerd op uit­slui­ting. Het laat alle in­for­ma­tie die niet aan een bepaalde voor­waar­de voldoet, weg uit uw zoek­re­sul­ta­ten.

SQL NOT wordt vaak gebruikt met SELECT, WHERE en SQL HAVING. U kunt NOT com­bi­ne­ren met AND en OR om uw zoek­op­dracht nog nauw­keu­ri­ger te maken. Op die manier filtert u ir­re­le­van­te re­sul­ta­ten weg.

Wat is het verschil tussen SQL NOT, AND en OR?

De be­lang­rijk­ste ver­schil­len tussen SQL NOT, AND en OR kunnen als volgt worden sa­men­ge­vat:

SQL NOT SQL AND SQL OR
Geeft alleen items weer die niet aan de opgegeven voor­waar­de voldoen Geeft items weer die aan alle aan­ge­ge­ven voor­waar­den voldoen Geeft items weer die aan ten minste één van de aan­ge­ge­ven voor­waar­den voldoen
Negeren van een voor­waar­de die niet relevant is voor de zoek­op­dracht Com­bi­neert voor­waar­den om de zoek­op­dracht te beperken tot items die aan meerdere zoek­cri­te­ria voldoen Beperkt de zoek­re­sul­ta­ten tot items die aan ten minste één van meerdere criteria voldoen
Tip

Wil je je verdiepen in SQL, maar ben je nog een beginner? Bekijk dan onze inleiding tot SQL met voor­beel­den.

Wat is de syntaxis van SQL NOT?

De ba­sis­syn­taxis van SQL NOT ziet er als volgt uit:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

De volgende pa­ra­me­ters kunnen worden gebruikt met NOT:

  • SELECT: Geeft aan welke kolommen in uw zoek­op­dracht moeten worden opgenomen. U kunt een asterisk * gebruiken om de hele tabel te door­zoe­ken. U kunt ook af­zon­der­lij­ke kolommen spe­ci­fi­ce­ren met hun primaire en externe sleutels.
  • FROM: Geeft de tabel aan waarin u wilt zoeken.
  • WHERE: Geeft de voor­waar­den aan die u wilt gebruiken om uw zoek­op­dracht te verfijnen. Hier kunt u NOT gebruiken.
  • NOT: In com­bi­na­tie met WHERE om aan te geven welke zoek­re­sul­ta­ten niet moeten worden opgenomen.

Als u uw zoek­re­sul­ta­ten nog nauw­keu­ri­ger wilt maken, kunt u ook AND en OR gebruiken.

SQL NOT ge­com­bi­neerd met AND

Je kunt NOT com­bi­ne­ren met AND om re­sul­ta­ten uit te sluiten die aan twee of meer voor­waar­den voldoen.

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

SQL NOT ge­com­bi­neerd met OR

Je kunt NOT com­bi­ne­ren met OR om re­sul­ta­ten uit te sluiten die aan ten minste één voor­waar­de voldoen.

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

Waarvoor wordt SQL NOT gebruikt?

Er zijn talloze toe­pas­sin­gen voor SQL NOT in query’s en zoek­op­drach­ten. Deze omvatten:

  • Gegevens met be­trek­king tot klanten, be­stel­lin­gen of producten uit­slui­ten op basis van regio, jaar, categorie, prijs of een ander kenmerk
  • Gegevens negeren die ongeldige of ont­bre­ken­de waarden bevatten
  • Fi­nan­ci­ë­le gegevens filteren die niet aan bepaalde trans­ac­tie­cri­te­ria voldoen
  • Gegevens uit­slui­ten voor werk­ne­mers die niet tot een bepaalde afdeling behoren
  • Het filteren van sol­li­ci­tan­ten die niet over bepaalde kwa­li­fi­ca­ties be­schik­ken

Voor­beel­den van SQL NOT

Zoek­op­drach­ten met SQL NOT kunnen sterk variëren, af­han­ke­lijk van het gebruik. Bepalende factoren zijn hoe u de voor­waar­de de­fi­ni­eert met de WHERE, de NOT en andere optionele ope­ra­to­ren. Hieronder laten we u drie voor­beel­den zien.

Werk­ne­mers uit­slui­ten op basis van regio

Stel dat u werkt in een tabel met de naam ‘Werk­ne­mers’ en alleen de werk­ne­mers wilt zien die niet in het Verenigd Ko­nink­rijk wonen. Gebruik hiervoor de kolom ‘Land’, een WHERE clausule, een NOT en de ver­ge­lij­kings­ope­ra­tor =.

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

Of als u wilt zien welke producten niet op voorraad zijn, zou dat er ongeveer zo uitzien:

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

Klanten filteren

In dit voorbeeld zoeken we naar een groep klanten die niet aan bepaalde criteria voldoen. Stel dat u geen klanten wilt zien die jonger zijn dan 30 en in Cardiff wonen. Dat zou er als volgt uitzien:

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

Het filteren van on­der­ge­kwa­li­fi­ceer­de sol­li­ci­tan­ten

Stel dat u alle sol­li­ci­tan­ten wilt uit­slui­ten die geen ba­chel­or­di­plo­ma of minimaal drie jaar werk­er­va­ring hebben. Die zoek­op­dracht zou er als volgt uitzien:

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

Wat zijn enkele al­ter­na­tie­ven voor SQL NOT?

SQL NOT is de enige operator die negatie gebruikt om zoek­cri­te­ria te filteren. Maar aangezien SQL NOT een veel­zij­di­ge SQL-operator is, kan deze worden ge­com­bi­neerd met ver­schil­len­de SQL-op­drach­ten om nauw­keu­ri­ge zoek­op­drach­ten uit te voeren. Deze op­drach­ten omvatten SQL JOIN en SQL HAVING zoals SQL SUM en AVG. Het kan ook worden ge­com­bi­neerd met ver­ge­lij­kings­ope­ra­to­ren zoals =, > en SQL LIKE, en de logische ope­ra­to­ren AND en OR.

Ga naar hoofdmenu