Rekommenderas, 2024

Redaktionen

Skillnad mellan var och klausul i SQL

WHERE och HAVING-klausulen används huvudsakligen i uttalandet av SQL-frågor. Dessa tillåter oss att begränsa kombinationen i resultatrelationen genom att använda ett specifikt predikat. Den största skillnaden mellan WHERE och HAVING är att WHERE-klausulen anger villkoren för val av tuples (rader) från relationerna, inklusive anslutningsförhållanden om det behövs. Å andra sidan anger HAVING-klausulen ett villkor på de grupper som väljs istället för individuella tuplar.

SQL står för Structured Query Language ; Det är omfattande eller declarative databas som används för att komma åt data från databaserna.

Jämförelsediagram

Grunder för jämförelseVARHAR
GrundläggandeImplementeras i radoperationer.Implementeras i kolumnverksamhet.
Appliceras påEn radSammanfattad rad eller grupper.
Data hämtningDet hämtar bara de specifika uppgifterna från särskilda rader enligt villkoret.Först hämtas fullständiga data då separeras enligt villkoret.
AggregatfunktionerKan inte visas i WHERE-klausulen.Kan visas i HAVING-klausul.
Används medSELECT och andra uttalanden som UPDATE, DELETE eller någon av dem.Kan inte användas utan SELECT-uttalande.
Agera somFörfilterPost-filter
GRUPP AVKommer efter var.Kommer efter att ha.

Definition av var paragraf

SQL WHERE-klausulen används för att beskriva ett villkor vid tidpunkten för att hämta data från ett enda bord eller genom att ansluta sig till flera tabeller. Det returnerar endast det särskilda värdet från tabellen om det givna villkoret är uppfyllt. VAR-klausul används för att permeera registren och bara hämta de nödvändiga dokumenten.

SQL implementerar också de logiska anslutningarna och, eller och inte i WHERE-klausulen, som också är kända som det booleska tillståndet; villkoret måste vara sant att hämta tuplarna. Operandema för de logiska kopplingsuttrycken innefattar jämförande operatörer som <, <=, >, > =, =, och . Dessa jämförelseoperatörer jämför strängar och aritmetiska uttryck. Den kan användas i SELECT- satsen, såväl som i UPDATE, DELETE statements.

Låt oss ta ett exempel. Tabellen nedan som heter " Försäljnings " -tabellen består av attributen " Produkt " och " Sales_amount ".

Följande fråga ska skrivas för att beräkna totalpriserna för telefon och högtalare.

 VÄLJ Produkt, summa (Sales_amount) AS Total_sales FRÅN Försäljning Var produkt i ('Telefon', 'Högtalare') GRUPP PER PRODUKT; 

Efter utmatning hämtas den resulterande utgången där raderna filtreras först, telefon- och högtalarrader hämtas sedan aggregatfunktionen utförs.

Definition av att ha klausul

SQL tillhandahåller HAVING-klausul som kan användas tillsammans med GROUP BY- klausulen. Denna HAVING-klausul hjälper till att hämta värdena för de grupper som uppfyller vissa villkor. VAR-klausul kan också användas i kombination med HAVING-klausulen under valet, WHERE-klausulen filtrerar den enskilda raden. Raderna grupperas sedan och aggregatberäkningar utförs, till sist HAVING clause filtrerar grupperna.

Det beter sig på samma sätt som WHERE när GROUP BY sökord inte används. Gruppfunktionerna som min, max, avg, summa och räkning kan visas i endast två klausuler: SELECT och HAVING-klausulen. Det ger ett villkor på tuplarna som motsvarar varje värde i gruppen av attribut. Den enda uppsättningen poster som uppfyller villkoret kommer att visas som resultat.

Här tar vi också samma exempel som WHERE-klausulen och beaktar samma " Försäljnings " -tabellen. När vi vill beräkna summan av telefon och högtalare med HAVING-klausul skriver vi följande fråga.

 VÄLJ Produkt, summa (Sales_amount) AS Total_sales FRÅN SÄKERHETSGRUPP PER PRODUKT MED PRODUKT IN ("Telefon", "Högtalare"); 

Frågan producerar följande utmatning där produkterna hämtas först, därefter utförs aggregatfunktion (summa) och sistgrupper filtreras till skillnad från WHERE-klausulen.

När vi bara vill hitta de produkter där Total_sales är större än 1000. Frågan kan skrivas som:

 VÄLJ Produkt, summa (Sales_amount) AS Total_sales FRÅN SÄKERHETSGRUPP PER PRODUKT MED SUM (Sales_amount)> 1000; 

Produktionen är:

Detta kan inte utföras med WHERE-klausulen trots HAVING och det genererar ett felmeddelande eftersom WHERE-klausulen inte kan användas med aggregatfunktioner.

Viktiga skillnader mellan var och en klausul

  1. VAR-klausul används i radoperationer och tillämpas på en enda rad medan HAVING-klausul används i kolumnoperationer och kan appliceras på sammanfattande rader eller grupper.
  2. I WHERE-klausulen hämtas de önskade uppgifterna enligt det använda tillståndet. Däremot hämtar HAVING-klausulen hela data och separering sker enligt villkoret.
  3. Sammanlagda funktioner som min, summa, max, avg kan aldrig visas tillsammans med WHERE-klausulen. Däremot kan dessa funktioner visas i HAVING-klausulen.
  4. HAVING-klausulen kan inte användas utan ett SELECT-meddelande. Omvänt kan WHERE användas med SELECT, UPDATE, DELETE etc.
  5. VAR-klausulen beter sig som ett förfilter medan HAVING-klausulen fungerar som ett efterfilter.
  6. VAR-klausul när den används med GROUP BY, kommer före GROUP BY. Detta betyder att WHERE filterrader innan aggregatberäkningar utförs. Å andra sidan kommer det efter GROUP BY, vilket innebär att det filtreras efter att aggregatberäkningar utförs.

Slutsats

VAR OCH HAVING-klausul fungerar på samma sätt förutom den extra funktionen som HAVING-klausulen är populär för. HAVING-klausulen kan fungera effektivt med aggregatfunktioner medan WHERE inte kan användas med aggregatfunktioner.

Top