MySQL è uno dei linguaggi più utilizzati per l'archiviazione dei dati nei database. Il linguaggio ha molti comandi noti come query che aiutano l'utente a svolgere diverse attività, tra cui la ricerca, la modifica, l'aggiornamento, ecc., rendendo i dati presentabili e fornendo una facile gestione. Le due query più utilizzate per la ricerca sono Dove e Avere.
Punti chiave
- La clausola HAVING filtra i record in base a gruppi e funzioni di aggregazione, mentre la clausola WHERE filtra i singoli record prima del raggruppamento.
- La clausola HAVING viene utilizzata con l'istruzione GROUP BY, mentre la clausola WHERE può essere utilizzata indipendentemente o insieme ad altre clausole.
- La clausola WHERE non può essere utilizzata con le funzioni di aggregazione, ma la clausola HAVING può essere utilizzata con queste funzioni come COUNT, SUM e AVG.
Clausola Avere vs Dove
La clausola HAVING in SQL viene utilizzata per filtrare i record in combinazione con la clausola GROUP BY quando vengono utilizzate le funzioni di aggregazione. La clausola WHERE viene utilizzata per filtrare i record prima che vengano creati raggruppamenti o aggregazioni.

La clausola getting viene utilizzata per filtrare le colonne presenti in una tabella e raggruppate in base a una condizione specifica data dalla clausola group by. Il vantaggio dell'utilizzo della clausola Have è che può contenere funzioni aggregate ed è implementata anche nelle colonne.
La clausola Where può essere utilizzata con diverse funzioni come SELECT, UPDATE e DELETE e viene utilizzata per filtrare i record presenti in una determinata tabella e può essere utilizzata per fornire un filtro durante l'unione delle tabelle. La clausola funziona sulle righe e non richiede una clausola group-by. La query della clausola where può eseguire qualsiasi operazione logica come not, AND, ecc.
Tavola di comparazione
Parametri di confronto | Avere clausola | Dove Clausola |
---|---|---|
Funzione | La clausola viene utilizzata per filtrare i dati da un gruppo. | La clausola where viene utilizzata per filtrare i dati dai record di una tabella. |
Raggruppa per clausola | Non può funzionare senza una clausola group by e viene utilizzato in una query successiva. | Può funzionare senza una clausola group by e anche se viene fornita la clausola where viene prima. |
Operazioni aggregate | Le operazioni di aggregazione possono essere eseguite sui dati perché filtra i gruppi. | Non può eseguire queste operazioni perché filtra singole righe. |
Applicazioni | La clausola having viene utilizzata con la clausola group by e quindi la clausola having lavora sulle colonne del gruppo | La clausola where viene utilizzata per filtrare le righe di una determinata tabella. |
Selezione | La clausola having recupera prima tutti i dati, quindi li raggruppa e, successivamente, il filtro viene eseguito in base alla condizione specificata. | La clausola Where recupera solo la quantità specificata di dati in base alla condizione fornita. |
Cosa sta avendo la clausola?
La clausola having viene utilizzata per filtrare i dati e viene utilizzata in una query in coniugazione con il gruppo tramite comando. La clausola group by prima raggruppa i dati in base alla query, quindi la clausola having viene utilizzata per operare sulle colonne dei dati raggruppati. La filtrazione dei dati è un processo piuttosto lungo.
Il vantaggio di utilizzare questa clausola è che può funzionare con una varietà di funzioni aggregate diverse come SUM, COUNT, ecc. L'output dei calcoli eseguiti è un numero. È possibile utilizzare le funzioni aggregate delle funzioni su più righe poiché vengono eseguite su un gruppo e un altro vantaggio è che può funzionare anche con le istruzioni where.
Lavorare con la clausola Where è un po' diverso. I passaggi che seguono sono: -
- Diverse righe vengono recuperate in base all'istruzione where.
- Le righe sono raggruppate mediante l'uso della clausola group by.
- Questo è seguito dall'esecuzione di diverse funzioni come somma e conteggio.
- I dati vengono visualizzati in base alla condizione specificata dalla clausola having.
La clausola Aving ha i suoi svantaggi. La clausola non può essere utilizzata insieme a diverse clausole come Update, Modify, Delete, ecc. ed è stato un problema. Ordina anche i dati per gruppi; pertanto, più volte, è difficile ordinare i dati secondo alcune preferenze.
Cos'è la clausola Where?
La clausola where viene utilizzata in una query per filtrare diversi tipi di dati dai record di una tabella. L'istruzione select ha i suoi limiti come non può eseguire funzioni di aggregazione nella query con cui viene utilizzata e inoltre non può essere d'aiuto nei casi in cui è necessario un importo specifico.
La clausola Where può essere utilizzata in vari luoghi e con molte clausole diverse come Aggiorna, Modifica ed Elimina e può essere utilizzata per eseguire attività speciali attraverso questo. La segregazione tramite questa clausola viene effettuata prima della clausola group by, ovvero i dati vengono filtrati prima e possono o meno avere una clausola group by. I passaggi delle prestazioni della query interna sono i seguenti: -
Esempio:- SELECT stato dal nome della tabella dove numero=1 gruppo per stato;
- La query sopra sarà prima lo stato della colonna dai record della tabella.
- I record verranno quindi selezionati in base alla condizione data.
- Dopo la selezione, i dati verranno raggruppati in base allo stato di appartenenza e verrà assegnato un numero in base alle persone in ogni stato.
La clausola Where può eseguire alcune attività come le operazioni logiche e unire due o più condizioni o negare una condizione utilizzando operazioni come AND, OR e NOT.
Principali differenze tra la clausola Avere e Dove
- La clausola having viene utilizzata per ordinare i dati dopo che sono stati raggruppati dalla clausola group by, mentre la clausola where viene utilizzata per filtrare i record di una tabella prima o dopo il raggruppamento.
- L'istruzione group by ha valori di posizione diversi nelle query. Nella clausola have è obbligatorio utilizzarlo, mentre nella clausola Where viene utilizzato dopo l'esecuzione della query e il filtraggio dei dati.
- La clausola having può eseguire le operazioni di aggregazione. Dopotutto, può eseguire funzioni su più righe e raggruppare i dati per primi, mentre la clausola Where non può funzionare perché può eseguire solo funzioni su una sola riga.
- La clausola having filtra i dati in base alle colonne ed è un numero davanti a diversi filtri, mentre la clausola where filtra i record o le righe di una tabella.
- La clausola having recupera prima tutti i dati in una tabella e poi li filtra dopo essere stati raggruppati, mentre la clausola where filtra prima i dati oi record della tabella.