| 3.3.4 Récupérer des informations à partir d'une table
 3.3 Création et utilisation d'une base de données
 3 Tutoriels d'introduction
 Manuel de Référence MySQL 4.1 : Version Française
 
 . Sélectionner toutes les données
 . Sélectionner des lignes particulières
 . Sélectionner des colonnes particulières
 . Trier les enregistrements
 . Calcul sur les Dates
 . Travailler avec la valeur NULL
 . Recherche de modèles
 ->Compter les lignes
 . Utiliser plus d'une table
 
 
 | 
  3.3.4.8 Compter les lignes    
 
Les bases de données sont souvent employées pour répondre à la question : 
``Combien de fois un certain type de données se trouve dans la table ?''
Par exemple, vous aimeriez savoir combien d'animaux vous avez, ou bien combien 
d'animaux chaque propriétaire possède, ou encore savoir différentes choses 
concernant vos animaux.
Savoir combien vous avez d'animaux revient à se poser la question : ``Combien 
de lignes y a-t-il dans la table  
animal
  ?'' parce qu'il y a un enregistrement 
par animal. La fonction  
COUNT()
  compte le nombre de résultats non  
NULL
 , 
donc, la requête pour compter les animaux ressemble à ceci : Vous pouvez trouver également les noms des propriétaires des animaux. 
Vous pouvez utiliser  
COUNT()
  si vous voulez trouver combien d'animaux 
possède chaque propriétaire :| 
mysql> SELECT COUNT(*) FROM animal;+----------+
 | COUNT(*) |
 +----------+
 |        9 |
 +----------+
 | 
 Notez l'utilisation de la clause  
GROUP BY
  pour grouper tous les enregistrements 
par propriétaire. Sans cela, vous auriez le message d'erreur suivant :| 
mysql> SELECT maitre, COUNT(*) FROM animal GROUP BY maitre;+--------+----------+
 | maitre | COUNT(*) |
 +--------+----------+
 | Benny  |        2 |
 | Diane  |        2 |
 | Gwen   |        3 |
 | Harold |        2 |
 +--------+----------+
 | 
 COUNT()
  et  
GROUP BY
  sont utiles pour caractériser vos données
de diverses façons. Les exemples suivants montrent différentes 
manières pour obtenir des statistiques sur les animaux.Nombre d'animaux par espèce :| 
mysql> SELECT maitre, COUNT(maitre) FROM animal;ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
 with no GROUP columns is illegal if there is no GROUP BY clause
 | 
 Nombre d'animaux par sexe :| 
mysql> SELECT espece, COUNT(*) FROM animal GROUP BY espece;+---------+----------+
 | espece  | COUNT(*) |
 +---------+----------+
 | oiseau  |        2 |
 | chat    |        2 |
 | chien   |        3 |
 | hamster |        1 |
 | serpent |        1 |
 +---------+----------+
 | 
 (Dans ce résultat,  
NULL
  indique les sexes inconnus.)| 
mysql> SELECT sexe, COUNT(*) FROM animal GROUP BY sexe;+------+----------+
 | sexe | COUNT(*) |
 +------+----------+
 | NULL |        1 |
 | f    |        4 |
 | m    |        4 |
 +------+----------+
 | 
 
Nombre d'animaux par espèce et sexe :
 Vous n'avez pas besoin de rechercher une table entière quand vous employez 
 
COUNT()
 . Par exemple, la requête précédente, si vous voulez trouver 
uniquement les chiens et les chats, ressemble à cela :| 
mysql> SELECT espece, sexe, COUNT(*) FROM animal GROUP BY espece, sexe;+---------+------+----------+
 | espece  | sexe | COUNT(*) |
 +---------+------+----------+
 | oiseau  | NULL |        1 |
 | oiseau  | f    |        1 |
 | chat    | f    |        1 |
 | chat    | m    |        1 |
 | chien   | f    |        1 |
 | chien   | m    |        2 |
 | hamster | f    |        1 |
 | serpent | m    |        1 |
 +---------+------+----------+
 | 
 Ou bien, si vous voulez trouver le nombre d'animaux par sexe, uniquement pour les 
animaux dont le sexe est connu :| 
mysql> SELECT espece, sexe, COUNT(*) FROM animal-> WHERE espece = "chien" OR espece = "chat"
 -> GROUP BY espece, sexe;
 +---------+------+----------+
 | espece  | sexe | COUNT(*) |
 +---------+------+----------+
 | chat    | f    |        1 |
 | chat    | m    |        1 |
 | chien   | f    |        1 |
 | chien   | m    |        2 |
 +---------+------+----------+
 | 
 | 
mysql> SELECT espece, sexe, COUNT(*) FROM animal-> WHERE sexe IS NOT NULL
 -> GROUP BY espece, sexe;
 +---------+------+----------+
 | espece  | sexe | COUNT(*) |
 +---------+------+----------+
 | oiseau  | f    |        1 |
 | chat    | f    |        1 |
 | chat    | m    |        1 |
 | chien   | f    |        1 |
 | chien   | m    |        2 |
 | hamster | f    |        1 |
 | serpent | m    |        1 |
 +---------+------+----------+
 | 
 |