Différences et utilisation des clauses WHERE et HAVING en SQL
SQL (Structured Query Language) est un outil puissant pour manipuler et récupérer les données d'une base de données. Lorsque vous utilisez des fonctions d'agrégation de données telles que COUNT() ou SUM(), il est important de comprendre la différence entre les clauses HAVING et WHERE.
Aperçu
La clause WHERE est utilisée pour filtrer les lignes avant l'agrégation. Il évalue la condition par rapport aux lignes individuelles du tableau.
La clause HAVING est utilisée pour filtrer les lignes après l'agrégation. Il évalue les conditions sur la base de données agrégées.
Différences clés
La différence la plus critique entre HAVING et WHERE est le moment de leur filtrage :
Exemple
Considérons l'exemple suivant :
<code class="language-sql">SELECT City, COUNT(*) AS AddressCount FROM Address WHERE State = 'MA' GROUP BY City</code>
Cette requête utilise la clause WHERE pour sélectionner toutes les adresses situées dans l'état "MA" avant regroupement. Il regroupe ensuite les résultats par ville et compte le nombre d'adresses dans chaque ville.
Maintenant, modifions la requête à l'aide de la clause HAVING :
<code class="language-sql">SELECT City, COUNT(*) AS AddressCount FROM Address WHERE State = 'MA' GROUP BY City HAVING AddressCount > 5</code>
Dans cette requête modifiée, la clause HAVING est utilisée pour filtrer les résultats après agrégation. Il sélectionne uniquement les villes comportant plus de 5 adresses.
Quand utiliser OÙ et HAVING
En comprenant la différence de temps entre WHERE et HAVING, les développeurs peuvent récupérer efficacement les données de la base de données en fonction de conditions spécifiques avant ou après l'agrégation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!