Introduktion till WHERE-klausulen
Som vi alla vet att SQL (Structured Query Language) är ett av de mest använda språken för relationsdatabaser (databas där poster sparas i form av rader och kolumner). I SQL-frågor avfyras för att träffa databasen för att utföra önskade operationer, vare sig det är DML (Data Manipulation Language), DDL (Data Definition Language) eller DCL (Data Control Language). SQL använder några klausuler som WHERE, GROUP BY, HAVING, ORDER BY som utför specifika operationer. WHERE-klausulen används för att tillämpa villkor och filtrera bort resultat medan du hämtar eller manipulerar data från databasen. Det används med SELECT, UPDATE och DELETE-uttalandet och WHERE-klausulen är valfri för att användas med dem.
I allmänhet villkor, WHERE-klausulen,
- Används för att filtrera raderna enligt de angivna kriterierna.
- Begränsar antalet returnerade rader.
- Följt av ett logiskt villkor som returnerar antingen sant eller falskt.
- Fungerar endast om det nämnda villkoret återgår.
- Det kan användas med SELECT, UPDATE eller DELETE-uttalanden.
1. Syntax med SELECT
SELECT column1, column2, column3… from table_name WHERE condition;
Här kommer SELECT att hämta alla data från kolumn1, kolumn2, kolumn3 från tabellen (benämnd som tabellnamn) och WHERE-klausulen tillämpar villkoren för de data som hämtas med SELECT-sats och filtrerar det enligt villkoret som nämns i uttalandet.
2. Syntax med UPDATE
UPDATE table_name SET column_name = value WHERE condition;
Här kommer Update att uppdatera värdet för kolumnnamnet med angivet där villkor.
Jämförelse och logiska operatörer kan också användas med WHERE-tillstånd som och, eller, inte, LIKE, <, =, etc.
3. Syntax med DELETE
DELETE from table_name WHERE condition;
I ovanstående syntax:
tabellnamn | Namn på tabellen som operationerna behöver utföras på. |
tillstånd | Anger filtervillkoret för vilka poster måste filtreras |
column_list | Namn på tabellens kolumner |
exempel
Tänk på en elevtabell med olika kolumner och värden som nämns nedan:
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percentage |
1 | Rahul | Agra | 9557806625 | 85 |
2 | Ankit | delhi | 8855664471 | 75 |
3 | Shailendra | Noida | 7213457896 | 92 |
Scenario 1
Hämta student-id, studentens namn, adress och procentandel av alla de studenter som fick mer än 80 procent.
Fråga
SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;
Resultat:
Antal poster: 2
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 85 |
3 | Shailendra | Noida | 92 |
Scenario nr 2
Uppdatera procenten av Rahul med 2 procent.
Fråga
UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';
Resultat:
Påverkade rader: 1
Om vi träffar frågan för att se de uppdaterade fälten:
Fråga
SELECT * from students WHERE Stu_name ='Rahul';
Resultat:
Antal poster: 1
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 87 |
Scenario nr 3
Student Ankit har lämnat skolan så ta bort hela posten om honom från bordet.
Fråga
DELETE from students WHERE Stu_name = 'Ankit';
Resultat:
Påverkade rader: 1
För att se den uppdaterade bordstudenten:
Fråga
SELECT * from students;
Resultat:
Påverkade rader: 2
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3 | Shailendra | Noida | 7213457896 | 92 |
VAR klausul Verksamhet
WHERE-klausulen innehåller villkoren för vilka databasvärden filtreras. Olika operatörer kan användas med WHERE-klausulen. Några av dem anges nedan i tabellen med ett exempel:
S.No. | Operatör | Beskrivning | Exempel |
1. | OCH | Returnerar sant om båda villkoren matchar | VÄLJ * från studenter VAR Stu_name = 'Rahul' och Stu_percentage = 85; |
2. | ELLER | Returnerar sant om någon av
villkor matchar | VÄLJ * från studenter VAR Stu_name = 'Rahul' eller Stu_name = 'Shalendra'; |
3. | I | Värdet matchar något av de angivna flera värdena | VÄLJ * från studenter VAR Stu_city IN ('AGRA', 'NOIDA'); |
4. | INTE I | Värdet matchar inte något av de angivna flera värdena | VÄLJ * från studenter VAR Stu_city NOT IN ('AGRA', 'NOIDA'); |
5. | = | Likvärdig | VÄLJ * från studenter VAR
Stu_name = 'Rahul'; |
6. | > | Större än | VÄLJ * från studenter VAR Stu_percentage> 80; |
7. | < | Mindre än | VÄLJ * från studenter VAR Stu_percentage <78; |
8. | > = | Större än eller lika med | VÄLJ * från studenter VAR Stu_percenetage> = 70; |
9. | <= | Mindre än eller lika med | VÄLJ * från studenter VAR Stu_percenetage <= 70; |
10. | Inte lika med | VÄLJ * från studenter VAR Stu_percentage 75; | |
11. | MELLAN | Värdet ligger mellan ett visst intervall | VÄLJ * från studenter VAR
Stu_percentage MELLAN 70 OCH 85; |
12. | TYCKA OM | Värden matchar ett visst mönster. Används för att utföra jokertecken | VÄLJ * från studenter VAR Stu_city LIKE 'AG%'; |
Obs: Det är en sak som måste komma ihåg när man arbetar med WHERE-klausulen är att samtidigt som du anger villkoret citeras inte numeriska värden i enstaka citat ('') medan textvärden (varchar) måste citeras i enstaka citat (' ').
Hur fungerar WHERE-klausulen i SQL?
Även om ovanstående exempel tydligt visar hur WHERE-klausulen används för att filtrera data enligt det villkor som anges av användaren och tillåter snabbare körning av SQL-kod eftersom antalet returnerade poster begränsas av villkoret. SQL Query optimizer fungerar först på frågan med hjälp av FROM (tabell för vilken operation måste utföras) för att antingen hämta, ta bort eller uppdatera och sedan använda WHERE-klausul på resultaten.
VAR-klausulen kan endast användas när vi behöver filtrera resultaten i en enda tabell eller sammanfoga tabeller eftersom det fungerar på rader data men när det gäller aggregeringsfunktioner kan VAR inte användas för att tillämpa villkor för frågan.
Låt oss överväga scenariot där WHERE-klausulen inte kan användas:
Scenario: I en "film" -tabell, hämta alla detaljer om filmer som tjänar mer än 10 crores under speciella år som (2000, 2010, 2012..etc)
Fråga:
SELECT * from movies GROUP BY Year_released HAVING earnings > 10;
Ovanstående exempel använder HAVING-klausul istället för VAR, eftersom WHERE-klausulen inte kan användas i de sammanlagda funktionerna medan HAVING kan, och detta är också en av de största skillnaderna mellan WHERE och HAVING-klausulen
Slutsats - SQL WHERE-klausul
Ovanstående förklaring visar tydligt användningen av WHERE-klausulen och dess implementering för olika scenarier i SQL-frågor. Innan du skriver en fråga måste man komma ihåg användningen av varje klausul och scenariot där den specifika klausulen eller nyckelordet ska användas.
Rekommenderade artiklar
Detta är en guide till SQL WHERE-klausulen. Här diskuterar vi användningen av WHERE-klausulen och dess implementering för olika scenarier. Du kan också gå igenom våra andra föreslagna artiklar -
- Typer av sammanfogningar i SQL
- Wildcards i MySQL
- SQL Infoga fråga
- Utländsk nyckel i SQL
- Topp 6 typer av sammanfogningar i MySQL med exempel