Maison > base de données > Oracle > La différence entre count1 et count* dans Oracle

La différence entre count1 et count* dans Oracle

下次还敢
Libérer: 2024-04-30 06:12:15
original
676 Les gens l'ont consulté

La différence entre COUNT(1) et COUNT(*) dans Oracle est la suivante : COUNT(1) ignore les valeurs nulles et ne compte que les lignes non vides ; COUNT(*) compte toutes les lignes, y compris les valeurs nulles qui fonctionnent ; le choix dépend de : s'il existe des valeurs nulles, des priorités en matière de performances ou de cohérence.

La différence entre count1 et count* dans Oracle

La différence entre COUNT(1) et COUNT(*) dans Oracle

Dans Oracle, COUNT(1) et COUNT(*) sont deux fonctions d'agrégation utilisées pour calculer le nombre d'enregistrements dans une table , mais il existe une différence subtile entre les deux.

COUNT(1)

  • Compte uniquement les lignes avec des valeurs non nulles.
  • Cela évite les erreurs de comptage lorsqu'il y a des valeurs nulles dans le tableau.
  • Exécutez légèrement plus rapidement que COUNT(*) car il ignore les valeurs nulles.

COUNT(*)

  • Compte toutes les lignes, y compris celles avec des valeurs nulles.
  • Il renverra un décompte précis même s'il y a des valeurs nulles dans le tableau.
  • Comme il inclut des valeurs nulles, il peut s'exécuter légèrement plus lentement que COUNT(1).

Lequel choisir ?

Le choix de COUNT(1) ou COUNT(*) dépend des facteurs suivants :

  • Présence de valeurs nulles : Si des valeurs nulles sont possibles dans le tableau, utilisez COUNT(1) pour éviter les faux comptages.
  • Performance : Si la vitesse est critique et que vous êtes sûr qu'il n'y a pas de valeurs nulles dans le tableau, vous pouvez utiliser COUNT(1).
  • Cohérence : Si vous souhaitez un nombre cohérent sur toutes les lignes, y compris les valeurs nulles, vous devez utiliser COUNT(*).

Exemple

Supposons qu'il existe une table nommée students qui contient les données suivantes :

<code>| id | name | age |
|---|---|---|
| 1 | John | 20 |
| 2 | NULL | 25 |
| 3 | Mary | 22 |</code>
Copier après la connexion

Si vous interrogez cette table à l'aide de COUNT(1), elle renverra les résultats suivants :

<code>SELECT COUNT(1) FROM students;
2</code>
Copier après la connexion

C'est parce que COUNT( 1 ) ignore les valeurs NULL.

Si vous interrogez cette table en utilisant COUNT(*), elle renverra les résultats suivants :

<code>SELECT COUNT(*) FROM students;
3</code>
Copier après la connexion

C'est parce que COUNT(*) contient des valeurs NULL.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal