SQL NOT är en logisk operator som underlättar effektiv och precis filtrering av sökresultat genom uteslutning. Du kan använda operatorn NOT för att utelämna data som inte uppfyller ett villkor, vilket begränsar dina resultat till relevant information.

Vad är SQL NOT -operatorn?

Tillsammans med SQL OR och AND är NOT en av de logiska operatorerna i SQL som kan användas för att formulera villkor och kriterier för datakonsultationer. Medan operatorerna AND och OR returnerar de objekt från datamängder som uppfyller alla eller ett av villkoren, baserasNOT på uteslutning. Den utelämnar all information som inte uppfyller ett visst villkor från dina sökresultat.

SQL NOT används ofta tillsammans med SELECT, WHERE och SQL HAVING. Du kan kombinera NOT med AND och OR för att göra din sökning ännu mer precis. På så sätt filtrerar du bort irrelevanta resultat.

Vad är skillnaden mellan SQL NOT, AND och OR?

De viktigaste skillnaderna mellan SQL NOT, AND och OR kan sammanfattas enligt följande:

SQL NOT SQL AND SQL OR
Returnerar endast objekt som inte uppfyller det angivna villkoret Returnerar objekt som uppfyller alla angivna villkor Returnerar objekt som uppfyller minst ett av de angivna villkoren
Negerar ett villkor som inte är relevant för sökningen Kombinerar villkor för att begränsa sökningen till objekt som matchar flera sökkriterier Begränsar sökresultaten till artiklar som uppfyller minst ett av flera kriterier
Tips

Vill du fördjupa dig i SQL men är fortfarande nybörjare? Ta då en titt på vår introduktion till SQL med exempel.

Vad är syntaxen för SQL:s NOT?

Den grundläggande syntaxen för SQL NOT ser ut som följer:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

Följande parametrar kan användas med NOT:

  • SELECT: Anger vilka kolumner som ska inkluderas i sökningen. Du kan använda en asterisk * för att söka i hela tabellen. Du kan också ange enskilda kolumner med deras primära och främmande nycklar.
  • FROM: Anger den tabell som du vill söka i.
  • WHERE: Anger de villkor du vill använda för att begränsa din sökning. Här kan du använda NOT.
  • NOT: Kombineras med WHERE för att ange vilka sökresultat som inte ska inkluderas.

Om du vill göra dina sökresultat ännu mer precisa kan du också använda AND och OR.

SQL NOT i kombination med AND

Du kan kombinera NOT med AND för att utesluta resultat som uppfyller två eller flera villkor.

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

SQL NOT i kombination med OR

Du kan kombinera NOT med OR för att utesluta resultat som uppfyller minst ett villkor.

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

Vad används SQL NOT till?

Det finns otaliga användningsområden för SQL NOT i frågor och sökningar. De inkluderar:

  • Utesluta data som rör kunder, beställningar eller produkter baserat på region, år, kategori, pris eller annan egenskap
  • Ignorera data som innehåller ogiltiga eller saknade värden
  • Filtrera finansiella data som inte uppfyller vissa transaktionskriterier
  • Utesluta data för anställda som inte tillhör en viss avdelning
  • Filtrera bort sökande som inte har vissa kvalifikationer

Exempel på SQL NOT

Sökningar med SQL NOT kan variera kraftigt beroende på användningsfallet. Avgörande faktorer är hur du definierar villkoret med WHERE, NOT och andra valfria operatorer. Nedan visar vi tre exempel.

Uteslutning av anställda baserat på region

Låt oss säga att du arbetar i en tabell som heter “Anställda” och bara vill se de anställda som inte bor i Storbritannien. För att göra detta använder du kolumnen “Land”, en WHERE, en NOT och jämförelseoperatorn =.

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

Om du vill se vilka produkter som är slut i lager ser det ungefär så här ut:

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

Filtrering av kunder

I det här exemplet söker vi efter en grupp kunder som inte uppfyller vissa kriterier. Låt oss säga att du inte vill se kunder som är yngre än 30 år och bor i Cardiff. Det skulle se ut så här:

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

Filtrera bort underkvalificerade sökande

Låt oss säga att du vill utesluta alla sökande som inte har en kandidatexamen eller minst tre års arbetserfarenhet. Sökningen skulle se ut så här:

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

Vilka är några alternativ till SQL NOT?

SQL NOT är den enda operatören som använder negation för att filtrera sökkriterier. Men eftersom SQL NOT är en mångsidig SQL-operator kan den kombineras med olika SQL-kommandon för att utföra precisa sökningar. Dessa kommandon inkluderar SQL JOIN och SQL HAVING som SQL SUM och AVG. Den kan också kombineras med jämförelseoperatorer som =, > och SQL LIKE, samt de logiska operatorerna AND och OR.

Gå till huvudmeny