Fonctions SQL
Fonctions SQL de chaîne, d'agrégation, de dates et d'opérateurs mathématiques
Fonctions de chaîne
- fonction de comparaison:
LIKE et NOT LIKE (ex: SELECT nom FROM clients LIKE titi;) - Remplacer un caractère dans une chaîne: _ (caractère souligné bas)
- Remplacer un ou plusieurs caractère dans une chaîne: %
- Pour que le caractère ne soit pas interprété: \ (anti slash)
- Rendre une comparaison sensible à la casse:
BINARY (ex: SELECT 'Ma' LIKE BINARY 'MA') - Pour comparer deux chaînes: STRCMP
- Recherche de texte intégrale: MATCH
- Transforme les minuscules en majuscules: UPPER (ex: SELECT UPPER('Ma');)
- Transforme les majuscules en minuscules: LOWER
Fonctions d'agrégation
Nous avions déjà utilisé la fonction SUM dans la requête pour lister le numéro des commandes dont le montant est sup à 100 Euros
SELECT numcommande, SUM(quantite * prix) AS Montant FROM details
GROUP BY numcommande HAVING Montant > 100;
SELECT COUNT(numcommande) AS 'Nombre de commandes' FROM commandes;
SELECT AVG(prix) AS 'Prix Moyen' FROM articles;
SELECT MAX(prix) AS 'Le plus cher' FROM articles;
Fonctions de date
NOW(), DATE_FORMAT(date, format), DAYOFWEEK(date), WEEKDAY(date), DAYOFMONTH(date), DAYOFYEAR(date), MONTH(date), DAYNAME(date), MONTHNAME(date), QUARTER(date), WEEK(date), YEAR(date), HOUR(date), MINUTE(date)
La date (DATE_FORMAT avec %W pour jour semaine, %d pour jour mois, %M le mois...):SELECT DATE_FORMAT(now(), '%W %d %M %Y') AS Date;
Autre fonctions
Trois exemples de fonctions spécifiques à MySQL
SELECT VERSION() AS 'Version du serveur';
SELECT DATABASE() AS 'Liste des bases de données';
SELECT USER() AS 'Nom d\'utilisateur';
<?php
$base = "mabase";
$user = "root";
$pass = "";
$serveur = "localhost";
mysql_connect("$serveur","$user","$pass")
or die("Connexion impossible: ".mysql_error());
mysql_select_db("$base");
$query = "SELECT USER() AS 'Nom d\'utilisateur du serveur MySQL'";
$resultat = mysql_query("$query");
if (!$resultat) { echo "La base est vide"; }
else {
?>
<html><body>
<?php
$affiche = mysql_fetch_array($resultat);
echo $affiche[0];
?>
</body></html>
<?php } ?>
Opérateurs mathématiques
MySQL dispose de tous les opérateurs mathématiques courants comme le non logique (!), le ou logique (||), le et logique (&&), la non égalité (!= ou <>), la nullité (IS NULL)...