Académique Documents
Professionnel Documents
Culture Documents
Langage de Req SQL Papier
Langage de Req SQL Papier
D'AGREGATION ET
FONCTIONS
Les fonctions d'agrégation, ou de groupement, sont des fonctions qui vont regrouper les lignes. Elles
agissent sur une colonne, et renvoient un résultat unique pour toutes les lignes sélectionnées (ou pour
chaque groupe de lignes, mais nous verrons cela plus tard).
Elles servent majoritairement à faire des statistiques, par exemple compter des lignes, connaître une
moyenne, trouver la valeur maximale par rapport à une colonne.
3
Fonctions d'agrégation
Fonctions d'agrégation
I
1. Fonctions d'agrégation
Les fonctions d'agrégation, ou de groupement, sont des fonctions qui vont regrouper les lignes. Elles
agissent sur une colonne, et renvoient un résultat unique pour toutes les lignes sélectionnées (ou
pour chaque groupe de lignes, mais nous verrons cela plus tard).
Elles servent majoritairement à faire des statistiques, par exemple compter des lignes, connaître
une moyenne, trouver la valeur maximale par rapport à une colonne.
4
1.1. Fonctions statistiques
1.1.1. Nombre de lignes
Syntaxe
La fonction COUNT() permet de savoir combien de lignes sont sélectionnées par la requête.
Syntaxe
Par contre, si on utilise COUNT(colonne), seules les lignes dont la valeur de colonne n'est pas
NULL seront prises en compte.
1SELECT COUNT (id_client) FROM client; //nombre de client dont l'id est non
null
1.1.2. Doublons
Syntaxe
Comme dans une requête SELECT, il est possible d'utiliser le mot-clé DISTINCT pour ne pas
prendre en compte les doublons.
Syntaxe
La fonction MIN(x), retourne la plus petite valeur de x.
Syntaxe
Notez que MIN() et MAX() ne s'utilisent pas uniquement sur des données numériques. Si vous lui passez
des chaînes de caractères, MIN() récupérera la première chaîne dans l'ordre alphabétique, MAX() la
dernière ; avec des dates, MIN() renverra la date la plus ancienne et MAX() la date la plus récente.
Syntaxe
La fonction SUM(x) renvoie la somme de x.
5
Syntaxe
La fonction AVG(x) renvoie la moyenne de x.
1.2. Concaténation
Syntaxe
La concaténation est faisable avec GROUP_CONCAT(nom_colonne). Cette fonction concatène les
valeurs de nom_colonne pour chaque groupement réalisé.
Exemple
On récupère la somme des soldes de chaque client, et on affiche les clients concernés par la même occasion.
Syntaxe
Voici la syntaxe de cette fonction GROUP_CONCAT :
6
Fonctions scalaires
Fonctions scalaires
II
1. Fonctions scalaires
Voici donc quelques fonctions scalaires qui vont vous permettre de manipuler les nombres : faire
des calculs, des arrondis, prendre un nombre au hasard, etc.
7
1.1. Manipulation de nombre
1.1.1. Arrondis
Arrondir un nombre, c'est trouver une valeur proche de ce nombre avec une précision donnée et
selon certains critères.
La précision est en général représentée par le nombre de décimales désirées.
Syntaxe
CEIL(n) ou CEILING(n) arrondit au nombre entier supérieur.
Syntaxe
FLOOR(n) arrondit au nombre entier inférieur.
Syntaxe
ROUND(n, d) arrondit au nombre à d décimales le plus proche. ROUND(n) équivaut à écrire
ROUND(n, 0), donc arrondit à l'entier le plus proche.
1SELECT ROUND (3.22, 1),ROUND (3.55, 1), ROUND (3.77, 1); // Renvoie 3.2| 3.6
|3.8
2SELECT ROUND (3.2, 1),ROUND (3.5, 1), ROUND (3.7, 1); // Renvoie 3| 4 | 4
Syntaxe
TRUNCATE(n, d) arrondit en enlevant purement et simplement les décimales en trop (donc arrondi
à l'inférieur pour les nombres positifs, au supérieur pour les nombres négatifs).
1SELECT TRUNCATE (3.2, 0),TRUNCATE (3.5, 0), TRUNCATE (3.7, 0); // Renvoie 3| 3
|3
2SELECT TRUNCATE (3.22, 1),TRUNCATE (3.55, 1), TRUNCATE (3.77, 1); // Renvoie
3.2| 3.5 | 3.7
Syntaxe
POWER(n, e) (ou POW(n, e)) retourne le résultat de n exposant e ( ne ).
Pour rappel, n exposant e ( ne ) veut dire que l'on multiplie n par lui-même, e fois. Donc par
exemple, 23=2×2×2=8
Syntaxe
SQRT(n) donne la racine carrée positive de n ( √n = 2√n )
8
Exemple
n√X=x 1/n , donc pour obtenir par exemple la racine cinquième de 32, il suffit de faire :
1.1.3. Divers
Syntaxe
SIGN(n) renvoie le signe du nombre n. Ou plus exactement, SIGN(n) renvoie -1 si n est négatif, 0 si
n vaut 0, et 1 si n est positif.
Syntaxe
ABS(n) retourne la valeur absolue de n, donc sa valeur sans le signe.
Syntaxe
La fonction MOD(n, div) retourne le modulo, donc le reste de la division entière de npar div (comme
l'opérateur % ou MOD)
9
1.2. Manipulation de chaînes de caractères
1.2.1. Longueur et comparaison
Trois fonctions permettent d'avoir des informations sur la longueur d'une chaîne de caractères.
Chaque fonction calcule la longueur d'une manière particulière.
• BIT_LENGTH(chaine) : retourne le nombre de bits de la chaîne. Chaque caractère est encodé
sur un ou plusieurs octets, chaque octet représente huit bits.
• CHAR_LENGTH(chaine) : (ou CHARACTER_LENGTH()) retourne le nombre de caractères de
la chaîne.
• LENGTH(chaine) : retourne le nombre d'octets de la chaîne. Chaque caractère étant représenté par un
ou plusieurs octets (rappel : les caractères que vous pouvez utiliser dépendent de l'encodage choisi).
Syntaxe
REPEAT(c, n) retourne le texte c, n fois.
Syntaxe
Les fonctions LPAD() et RPAD() appliquées à une chaîne de caractères retournent cette chaîne en lui donnant
une longueur particulière, donnée en paramètre. Si la chaîne de départ est trop longue, elle sera raccourcie, si
elle est trop courte, des caractères seront ajoutés, à gauche de la chaîne pour LPAD(), à droite pour RPAD().
Ces fonctions nécessitent trois paramètres : la chaîne à transformer (texte), la longueur désirée
(long), et le caractère à ajouter si la chaîne est trop courte (caract).
Syntaxe
Il peut arriver que certaines de vos données aient des caractères inutiles ajoutés avant et/ou après
le texte qui vous intéresse. Dans ce cas, il vous est possible d'utiliser la fonction TRIM(), qui va
supprimer tous ces caractères.
On peut donc choisir entre trois options : BOTH, LEADING et TRAILING.
Si aucune option n'est précisée, c'est BOTH qui est utilisé par défaut.
10
2 TRIM( LEADING FROM‘ chantons ‘) AS ‘exemple2'
3 TRIM(TRAILING FROM‘ chantons ‘) AS ‘exemple3',
4 TRIM(‘s' FROM ,‘salades') AS ‘exemple4',
5TRIM( LEADING ‘d' FROM ‘ddchantonsdd ‘) AS ‘exemple5',
6TRIM( BOTH ‘z' FROM‘ chantez ‘) AS ‘exemple6'' ;
7; // Renvoie chantons | chantons | chantons | alade | chantonsdd |
chante
Syntaxe
La fonction SUBSTRING() retourne une partie d'une chaîne de caractères. Cette partie est définie par un ou deux
paramètres : pos (obligatoire), qui donne la position de début de la sous-chaîne, et long (facultatif) qui donne la
longueur de la sous-chaîne désirée (si ce paramètre n'est pas précisé, toute la fin de la chaîne est prise).
• SUBSTRING(chaine, pos)
11
Exercices
Exercices
III
1. Exercices d'autoévaluation
Client(id_client, nom, prenoms, sexe, contact)
12