Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox
EN CHANTIER
Cette page n'est pas terminée et est en cours d'écriture.

Les fonctions SQL scalaire

Compatible PHP 5. Cliquer pour en savoir plus sur les compatibilités.Par maxkauf68 (Kaufmann), le 11 janvier 2011

Une fonction représente une série d'instructions effectuant des actions et qui en retourne ensuite une valeur. Vous connaissez les fonctions en PHP, alors maintenant nous allons voir qu'il existe aussi des fonctions SQL. Sachez que ce fameux langage SQL possède une multitude de fonctions toutes prêtes pour effectuer directement des calculs sur les données.

Prérequis

Pour pouvoir suivre ce tutoriel il est préférable de déjà posséder quelques bases en PHP et MySQL.

Les fonctions en SQL

Une fonction représente une série d'instructions effectuant des actions et qui en retourne ensuite une valeur. Vous connaissez les fonctions en PHP, alors maintenant nous allons voir qu'il existe aussi des fonctions SQL. Sachez que ce fameux langage SQL possède une multitude de fonctions toutes prêtes pour effectuer directement des calculs sur les données.

Commençons notre tutoriel par un exemple :

SELECT id, nom, prenom FROM clients

Déchiffrons le code :

  • SELECT : fonction SQL qui nous permet de dire à MySQL que l'on va sélectionner un élément dans la base de données.
  • id, nom, prenom : ce sont les champs que l'on souhaite récupérer dans la base de données.
  • FROM : fonction SQL qui nous permet de dire à MySQL dans quelle table se situe les champs que l'on souhaite récupérer.
  • clients : correspond à la table où se trouvent les champs “id”, “nom”, “prenom”.

Les fonctions SQL sont moins nombreuses que les fonctions PHP, mais sont spécialement conçues pour les bases de données et se révèlent être très puissantes. Pour vous expliquer les différentes fonctions existantes nous allons créer une base de données que nous allons appeler “produits”, avec un champ “id”, “reference”, “description” et “prix”. Nous allons donc pouvoir, par exemple, modifier les entrées grâce à la fonction UPPER() ou à l'inverse, utiliser la fonction LOWER() pour les mettre en minuscules.

On peut classer les fonctions en deux catégories :

  • Les fonctions scalaires : elles agissent sur chaque entrée. Vous pouvez par exemple, grâce à la fonction UPPER() transformer en majuscules la valeur de chacune des entrées d'un champ.
  • Les fonctions d'agrégat : lorsque vous utilisez ce type de fonction, des calculs sont faits sur l'ensemble de la table pour retourner une valeur. Par exemple, calculer la moyenne des prix retourne une valeur : le prix moyen.

Les fonctions scalaires

Tout d'abord nous allons voir comment fonctionne une fonction SQL de type scalaire. Pour cela nous allons utiliser la fonction UPPER(). Une fois que vous arriverez à maîtriser cette fonction, vous n'aurez aucun mal à utiliser les autres fonctions scalaires. Nous en verrons quelques unes par la suite.

Utiliser les fonctions scalaires SQL

Pour l'exemple nous allons utiliser notre base de données “produits”. Voici à quoi elle ressemble :

Le nom des fonctions SQL est toujours écrit en majuscules. Ce n'est pas une obligation mais c'est une convention entre les programmeurs. Maintenant nous allons apprendre à utiliser les fonctions scalaires. Pour cela, nous allons utiliser la fonction UPPER() qui va nous permettre de transformer la totalité d'un champ en majuscule.

SELECT UPPER(reference) FROM produit

On utilise la fonction UPPER() sur le champ “reference”. Cette fonction nous a permis de récupérer toutes les références et ainsi de les mettre en majuscule. En exécutant cette requête, on créé un « champ virtuel » qui n'existera que le temps de la requête. Je vous conseille de renommer ce « champ virtuel » grâce au mot clé « AS » :

SELECT UPPER(reference) AS nom_maj FROM produits

On récupère les noms des références en majuscules via un champ virtuel appelé “nom_maj”, que l'on appel aussi un alias. Voici le tableau que retournera MySQL d'après la requête précédente :

On peut s'en servir en PHP pour afficher les références des produits en majuscules :

<?php
$reponse = $bdd->query('SELECT UPPER(reference) AS nom_maj FROM produits');

while ($donnees = $reponse->fetch())
{
        echo $donnees['nom_maj'] . '<br />';
}

$reponse->closeCursor();

?>

Voilà ce que donne notre requête SQL dans un script PHP. Grâce au script nous allons dire à la base de données que l'on souhaite sélectionner le champ référence grâce à la commande SELECT. Ensuite, nous allons dire à MySQL que l'on veut mettre en majuscule toutes les entrées du champ, grâce à la commande UPPER. Comme je vous l'avais dit auparavant, il faut créer un champ virtuel que l'on appel “nom_maj” et qui va nous permettre de stocker notre requête le temps de l'exécution. C'est ce champ que nous allons ensuite récupérer pour l'afficher grâce à la fonction “echo”.

Vous pouvez récupérer tous les champs que vous voulez à partir du moment où vous maîtrisez la partie de code PHP, il suffit ensuite de notifier à la place de “reference” les champs que vous voulez récupérer.

Conclusion

Grâce à ce tutoriel, vous savez maintenant utiliser une fonction scalaire.

En savoir plus

Pour des questions ou une aide éventuelle, rendez-vous sur le forum, le lien est juste en dessous. Vos questions profiterons ainsi aux autres lecteurs.