Hoe SQL `NOT` te gebruiken
SQL NOT is een logische operator die efficiënte en nauwkeurige filtering van zoekresultaten mogelijk maakt door middel van uitsluiting. U kunt de operator NOT gebruiken om gegevens weg te laten die niet aan een voorwaarde voldoen, waardoor uw resultaten worden beperkt tot relevante informatie.
Wat is de SQL NOT -operator?
Samen met SQL OR en AND is NOT een van de logische operatoren in SQL die kan worden gebruikt om voorwaarden en criteria voor gegevensquery’s te formuleren. Terwijl de operatoren AND en OR de items uit datasets retourneren die aan alle of een van de voorwaarden voldoen, isNOT gebaseerd op uitsluiting. Het laat alle informatie die niet aan een bepaalde voorwaarde voldoet, weg uit uw zoekresultaten.
SQL NOT wordt vaak gebruikt met SELECT, WHERE en SQL HAVING. U kunt NOT combineren met AND en OR om uw zoekopdracht nog nauwkeuriger te maken. Op die manier filtert u irrelevante resultaten weg.
Wat is het verschil tussen SQL NOT, AND en OR?
De belangrijkste verschillen tussen SQL NOT, AND en OR kunnen als volgt worden samengevat:
SQL NOT |
SQL AND |
SQL OR |
|---|---|---|
| Geeft alleen items weer die niet aan de opgegeven voorwaarde voldoen | Geeft items weer die aan alle aangegeven voorwaarden voldoen | Geeft items weer die aan ten minste één van de aangegeven voorwaarden voldoen |
| Negeren van een voorwaarde die niet relevant is voor de zoekopdracht | Combineert voorwaarden om de zoekopdracht te beperken tot items die aan meerdere zoekcriteria voldoen | Beperkt de zoekresultaten tot items die aan ten minste één van meerdere criteria voldoen |
Wil je je verdiepen in SQL, maar ben je nog een beginner? Bekijk dan onze inleiding tot SQL met voorbeelden.
Wat is de syntaxis van SQL NOT?
De basissyntaxis van SQL NOT ziet er als volgt uit:
SELECT *
FROM table
WHERE NOT (searchcriteria)sqlDe volgende parameters kunnen worden gebruikt met NOT:
SELECT: Geeft aan welke kolommen in uw zoekopdracht moeten worden opgenomen. U kunt een asterisk*gebruiken om de hele tabel te doorzoeken. U kunt ook afzonderlijke kolommen specificeren met hun primaire en externe sleutels.FROM: Geeft de tabel aan waarin u wilt zoeken.WHERE: Geeft de voorwaarden aan die u wilt gebruiken om uw zoekopdracht te verfijnen. Hier kunt uNOTgebruiken.NOT: In combinatie metWHEREom aan te geven welke zoekresultaten niet moeten worden opgenomen.
Als u uw zoekresultaten nog nauwkeuriger wilt maken, kunt u ook AND en OR gebruiken.
SQL NOT gecombineerd met AND
Je kunt NOT combineren met AND om resultaten uit te sluiten die aan twee of meer voorwaarden voldoen.
SELECT *
FROM table
WHERE NOT (condition1 AND condition2)sqlSQL NOT gecombineerd met OR
Je kunt NOT combineren met OR om resultaten uit te sluiten die aan ten minste één voorwaarde voldoen.
SELECT *
FROM table
WHERE NOT (condition1 OR condition2)sqlWaarvoor wordt SQL NOT gebruikt?
Er zijn talloze toepassingen voor SQL NOT in query’s en zoekopdrachten. Deze omvatten:
- Gegevens met betrekking tot klanten, bestellingen of producten uitsluiten op basis van regio, jaar, categorie, prijs of een ander kenmerk
- Gegevens negeren die ongeldige of ontbrekende waarden bevatten
- Financiële gegevens filteren die niet aan bepaalde transactiecriteria voldoen
- Gegevens uitsluiten voor werknemers die niet tot een bepaalde afdeling behoren
- Het filteren van sollicitanten die niet over bepaalde kwalificaties beschikken
Voorbeelden van SQL NOT
Zoekopdrachten met SQL NOT kunnen sterk variëren, afhankelijk van het gebruik. Bepalende factoren zijn hoe u de voorwaarde definieert met de WHERE, de NOT en andere optionele operatoren. Hieronder laten we u drie voorbeelden zien.
Werknemers uitsluiten op basis van regio
Stel dat u werkt in een tabel met de naam ‘Werknemers’ en alleen de werknemers wilt zien die niet in het Verenigd Koninkrijk wonen. Gebruik hiervoor de kolom ‘Land’, een WHERE clausule, een NOT en de vergelijkingsoperator =.
SELECT *
FROM Customers
WHERE NOT (Country = 'UK')sqlOf als u wilt zien welke producten niet op voorraad zijn, zou dat er ongeveer zo uitzien:
SELECT *
FROM Products
WHERE NOT (Inventory > 0)sqlKlanten 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')sqlHet filteren van ondergekwalificeerde sollicitanten
Stel dat u alle sollicitanten wilt uitsluiten die geen bachelordiploma of minimaal drie jaar werkervaring hebben. Die zoekopdracht zou er als volgt uitzien:
SELECT *
FROM Applicants
WHERE NOT (Degree = ´Bachelor´ OR Experience < 3)sqlWat zijn enkele alternatieven voor SQL NOT?
SQL NOT is de enige operator die negatie gebruikt om zoekcriteria te filteren. Maar aangezien SQL NOT een veelzijdige SQL-operator is, kan deze worden gecombineerd met verschillende SQL-opdrachten om nauwkeurige zoekopdrachten uit te voeren. Deze opdrachten omvatten SQL JOIN en SQL HAVING zoals SQL SUM en AVG. Het kan ook worden gecombineerd met vergelijkingsoperatoren zoals =, > en SQL LIKE, en de logische operatoren AND en OR.