Hur man använder SQL `NOT`
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 |
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)sqlFö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ändaNOT.NOT: Kombineras medWHEREfö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)sqlSQL 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)sqlVad 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')sqlOm 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)sqlFiltrering 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')sqlFiltrera 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)sqlVilka ä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.

