Maison >base de données >tutoriel mysql >COUNT(column) vs. COUNT(*) : quand dois-je utiliser lequel en SQL ?
*Explication détaillée de la différence entre COUNT(column) et COUNT() en SQL**
Dans les requêtes SQL, la fonction count()
est utilisée pour l'agrégation de données, mais il existe une différence subtile mais importante entre les deux formes couramment utilisées count(column)
et count(*)
.
COUNT(colonne) : exclure les valeurs NULL
La syntaxecount(column)
compte le nombre de valeurs non NULL dans la colonne spécifiée, ignorant efficacement les lignes avec des valeurs de colonne NULL. Cette fonctionnalité est utile lorsque vous devez déterminer le nombre de valeurs non nulles dans une colonne.
*COUNT() : contient une valeur NULL**
En revanche, count(*)
compte le nombre de lignes dans le jeu de résultats, y compris les lignes contenant des valeurs NULL. Contrairement à count(column)
, il traite NULL comme un élément de comptage valide. Cette fonctionnalité est utile lorsque vous devez obtenir le nombre total de lignes, qu'une colonne spécifique contienne ou non des données manquantes.
Exemple illustrant la différence
Considérons une table nommée #bla
contenant les enregistrements suivants :
<code class="language-sql">create table #bla(id int,id2 int) insert #bla values(null,null) insert #bla values(1,null) insert #bla values(null,1) insert #bla values(1,null) insert #bla values(null,1) insert #bla values(1,null) insert #bla values(null,null)</code>
Utilisez count(column)
pour exécuter la requête suivante :
<code class="language-sql">select count(id),count(id2) from #bla</code>
Le résultat est :
<code>3 2</code>
Parmi eux, count(id)
ne compte que trois valeurs non NULL dans la colonne id
, tandis que count(id2)
compte deux valeurs non NULL dans la colonne id2
.
Cependant, remplacer count(*)
par count(column)
donne 7, comme indiqué dans la requête suivante :
<code class="language-sql">select count(*) from #bla</code>
Dans ce cas, count(*)
contient sept lignes du tableau, qu'elles contiennent ou non des valeurs NULL. Cette distinction entre le comptage des valeurs non NULL et le comptage des lignes devient particulièrement importante lorsqu'il s'agit d'ensembles de données contenant des données manquantes.
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!