Sådan bruges SQL-operatoren `NOT`
SQL NOT er en logisk operator, der gør det muligt at filtrere søgeresultater effektivt og præcist ved hjælp af udelukkelse. Du kan bruge operatoren NOT til at udelade data, der ikke opfylder en betingelse, og dermed begrænse resultaterne til relevante oplysninger.
Hvad er NOT 10-operatoren?
Ligesom SQL OR og AND er NOT en af de logiske operatorer i SQL, der kan bruges til at formulere betingelser og kriterier for dataforespørgsler. Mens operatorerne AND og OR returnerer de poster fra datasæt, der opfylder alle eller en af betingelserne, erNOT baseret på udelukkelse. Den udelader alle de oplysninger fra søgeresultaterne, der ikke opfylder en bestemt betingelse.
SQL NOT bruges ofte sammen med SELECT, WHERE og SQL HAVING. Du kan kombinere NOT med AND og OR for at gøre din søgning endnu mere præcis. På den måde filtrerer du irrelevante resultater fra.
Hvad er forskellen mellem SQL NOT, AND og OR?
De væsentligste forskelle mellem SQL NOT, AND og OR kan sammenfattes som følger:
SQL NOT |
SQL AND |
SQL OR |
|---|---|---|
| Returnerer kun poster, der ikke opfylder den angivne betingelse | Returnerer poster, der opfylder alle de angivne betingelser | Returnerer poster, der opfylder mindst én af de angivne betingelser |
| Negerer en betingelse, der ikke er relevant for søgningen | Kombinerer betingelser for at indsnævre søgningen til emner, der matcher flere søgekriterier | Begrænser søgeresultaterne til emner, der opfylder mindst ét af flere kriterier |
Vil du gerne dykke dybere ned i SQL, men er stadig nybegynder? Så tag et kig på vores introduktion til SQL med eksempler.
Hvordan ser syntaksen for SQL NOT ud?
Den grundlæggende syntaks for SQL NOT ser således ud:
SELECT *
FROM table
WHERE NOT (searchcriteria)sqlFølgende parametre kan bruges sammen med NOT:
SELECT: Angiver, hvilke kolonner der skal medtages i din søgning. Du kan bruge en stjerne*til at søge i hele tabellen. Du kan også angive enkelte kolonner ved hjælp af deres primær- og fremmednøgler.FROM: Angiver den tabel, du vil søge i.WHERE: Angiver de betingelser, du vil bruge til at indsnævre din søgning. Det er her, du kan brugeNOT.NOT: Kombineres medWHEREfor at angive, hvilke søgeresultater der ikke skal medtages.
Hvis du vil gøre dine søgeresultater endnu mere præcise, kan du også bruge AND og OR.
SQL NOT kombineret med AND
Du kan kombinere NOT med AND for at udelukke resultater, der opfylder to eller flere betingelser.
SELECT *
FROM table
WHERE NOT (condition1 AND condition2)sqlSQL NOT kombineret med OR
Du kan kombinere NOT med OR for at udelukke resultater, der opfylder mindst én betingelse.
SELECT *
FROM table
WHERE NOT (condition1 OR condition2)sqlHvad bruges SQL NOT til?
Der findes utallige anvendelsesmuligheder for SQL NOT i forespørgsler og søgninger. Heriblandt kan nævnes:
- Udelukkelse af data vedrørende kunder, ordrer eller produkter baseret på region, år, kategori, pris eller et andet kendetegn
- Ignorerer data, der indeholder ugyldige eller manglende værdier
- Filtrering af finansdata, der ikke opfylder bestemte transaktionskriterier
- Udelukkelse af data for medarbejdere, der ikke er ansat i en bestemt afdeling
- Filtrering af ansøgere, der ikke har bestemte kvalifikationer
Eksempler på SQL NOT
Søgninger med SQL NOT kan variere meget afhængigt af anvendelsessituationen. De afgørende faktorer er, hvordan du definerer betingelsen med WHERE klausulen, NOT operatoren og andre valgfri operatorer. Nedenfor viser vi dig tre eksempler.
Udelukkelse af medarbejdere efter region
Lad os sige, at du arbejder i en tabel ved navn »Medarbejdere« og kun vil se de medarbejdere, der ikke bor i Storbritannien. For at gøre dette skal du bruge kolonnen »Land«, en WHERE -klausul, en NOT -operator og sammenligningsoperatoren =.
SELECT *
FROM Customers
WHERE NOT (Country = 'UK')sqlEller hvis du vil se, hvilke produkter der er udsolgt, vil det se nogenlunde sådan ud:
SELECT *
FROM Products
WHERE NOT (Inventory > 0)sqlFiltrering af kunder
I dette eksempel skal vi søge efter en gruppe kunder, der ikke opfylder bestemte kriterier. Lad os sige, at du ikke ønsker at se kunder, der er yngre end 30 år og bor i Cardiff. Det vil se således ud:
SELECT *
FROM Customers
WHERE NOT (Age < 30 AND City = 'Cardiff')sqlAt frasortere ansøgere, der ikke opfylder kravene
Lad os sige, at du vil udelukke alle ansøgere, der hverken har en bachelorgrad eller mindst tre års erhvervserfaring. Sådan ser søgningen ud:
SELECT *
FROM Applicants
WHERE NOT (Degree = ´Bachelor´ OR Experience < 3)sqlHvilke alternativer findes der til SQL NOT?
SQL NOT er den eneste operator, der bruger negation til at filtrere søgekriterier. Men da SQL NOT er en alsidig SQL-operator, kan den kombineres med forskellige SQL-kommandoer for at udføre præcise forespørgsler. Disse kommandoer omfatter SQL JOIN og SQL HAVING som SQL SUM og AVG. Den kan også kombineres med sammenligningsoperatorer som =, > og SQL LIKE samt de logiske operatorer AND og OR.