Médiaforma

PHP MySQL – Fonctions SQL

Print Friendly

Arrivés à ce point dans la formation, vous utilisez couramment les fonctions du langage PHP. Mais saviez-vous que le langage SQL possède ses propres fonctions ? Ces dernières pourront être utilisées dans des requêtes pour affiner les recherches.

Il existe deux types de fonctions SQL :

  • Les fonctions scalaires. Elles s’appliquent à chacune des valeurs qui lui sont passées. Quelques exemples : UPPER(), LOWER(), LENGTH(), ROUND().
  • Les fonctions d’agrégat. Elles effectuent des calculs sur une table et retournent un résultat. Quelques exemples : AVG(), SUM(), MAX(), MIN(), COUNT().

Voyons comment utiliser ces fonctions sur des exemples précis.

Nous allons convertir en minuscules les valeurs du champ CustomerID et en majuscules les valeurs du champ Country de la table northwind . Voici la table northwind avant et après la conversion :

Pour arriver à ce résultat, vous utiliserez les fonctions scalaires LOWER() et UPPER() :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Utilisation de fonctions SQL</title>
    <style>
      td { padding-right: 30px;}
    </style>
  </head>
  <body>
    <?php
      try {
        $base = new PDO('mysql:host=localhost; dbname=northwind', 'root', '');
      }
      catch(exception $e) {
        die('Erreur '.$e->getMessage());
      }
      $base->exec("SET CHARACTER SET utf8");
      $retour = $base->query('SELECT LOWER(CustomerID) as CustomerID_min, UPPER(Country) as Country_maj FROM customers');
      echo "<table>";
      while ($data = $retour->fetch()){
        echo "<tr><td>".$data['CustomerID_min']."</td>";
        echo "<td>".$data['Country_maj']."</td></tr>";
      }
      echo "</table>";
      $base = null;
    ?>
  </body>
</html>

Exécutons ce code dans WAMP Server. Le résultat est bien conforme à ce qui était attendu.

Un autre exemple. Supposons que vous vouliez connaître la valeur moyenne du champ Quantity de la table order_details de la base de données northwind.

Vous utiliserez pour cela la fonction d’agrégat AVG() :

SELECT AVG(Quantity) FROM order_details;

Pour saisir facilement cette requête, rien de tel que l’interface d’administration phpMyAdmin. Cliquez sur la base de données northwind dans le volet gauche. Basculez sur l’onglet SQL. Entrez la requête dans la zone dédiée, puis cliquez sur Exécuter. Le résultat est immédiatement affiché dans la partie inférieure de la fenêtre.

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply