Leçon 5 : Les Fonctions
en SQL
AYIKPA KACOUTCHY JEAN
Enseignant - Chercheur
Table des
matières
I - 1- Généralité les fonctions 3
II - Application 1 : 4
III - 2- Les différentes fonctions et leur traitement 5
IV - Application 2 : 8
1- Généralité les fonctions
1- Généralité les fonctions
I
Définition : 1.1- Définition
- Une fonction est un code qui effectue une série d'instructions bien précises, et renvoie le résultat de ces
instructions.
- Une fonction est définie par son nom et ses paramètres.
- Un paramètre de fonction est une donnée (ou un ensemble de données) que l'on fournit à la fonction
afin qu'elle puisse effectuer son action.
- Une fonction peut avoir un ou plusieurs paramètres, ou n'en avoir aucun.
- Dans le cas d'une fonction ayant plusieurs paramètres, l'ordre dans lequel on donne ces paramètres
est très important.
- Les paramètres sont aussi appelés arguments d'une fonction.
1.2- Intérêt des fonctions
- Les fonctions SQL permettent d'effectuer des requêtes plus élaborées, par exemple adaptant les résultats
pour qu'une chaîne soit affichée en majuscule ou bien pour enregistrer une chaîne avec la date actuelle.
- Elles permettent d’effectuer des requêtes en utilisant des fonctions mathématiques ( arrondi un nombre
etc)
- etc
3
Application 1 :
Application 1 :
II
Exercice
Un fonction permet :
la modification des données
le déclenchement automatiquement d'un événement
d' effectuer une série d'instructions
4
2- Les différentes fonctions et leur traitement
2- Les différentes
fonctions et leur III
traitement
2.1- Les fonctions Mathématique
Fonction Signification Exemple
ABS(X) Renvoie la valeur absolue de X SELECT ABS(-2); Renvoie 2
MOD(X ,Y) Renvoie le reste de la division de SELECT MOD(29,9); Renvoie 2.
X par Y
PI() Retourne la valeur de pi SELECT PI(); Retourne
3.141593
POW(X,Y) ou POWER(X,Y) Renvoie la valeur de X à la SELECT POW(2,3); Renvoie
puissance de Y. 2*2*2 = 8
RAND() Retourner un nombre aléatoire SELECT RAND();
SQRT(X) Renvoie la racine carrée d'un SELECT SQRT(4); renvoie 2
nombre non négatif X.
ROUND(X,n) Arrondie la valeur numérique X
- SELECT ROUND(PI(),2);
à n décimales près.
renvoie 3.14
- Si n est positif, la valeur
- SELECT ROUND(PI());
sera arrondie à n
renvoie 3
décimales après la virgule.
- Si n est négatif, la valeur
sera arrondie à n
décimales avant la virgule.
- Si vous ne précisez pas n, la
valeur sera arrondie à 0
décimale près.
5
2- Les différentes fonctions et leur traitement
2.2- Fonctions de caractères
Fonction Signification Exemple
CONCAT(Ch1,Ch2) Joint deux valeurs ensemble SELECT CONCAT('Salut',
'Tous') ;
renvoie SalutTous
SUBSTR(Ch,pos,nb) Extrait une chaîne de caractère S E L E C T SUBSTR
d'une taille déterminée. ('BonjourDAS',8,3) ; renvoie
DAS.
- Ch : la valeur de la chaîne
- pos :position de début de
l'extraxtion
- nb : nombre d'éléments à
extraire
LENGTH(X) Retourne la longueur d'une S E L E C T LENGTH
chaîne de caractères X. ('BonjourDAS'); Renvoie 10.
INSTR(Ch,X) Trouve la position du caractère SELECT INSTR('BonjourDAS',
X dans la chaîne Ch. 'D'); renvoie 8.
LOWER(X) Convertie une chaîne de SELECT LOWER('DAS');
caractère en minuscule Renvoie das
UPPER(X) Convertie une chaîne de SELECT LOWER('das');
caractères en majuscule Renvoie DAS
2.3- Fonctions de date
- On peut manipuler une date (jour, mois, année) avec le type DATE. Ce type représente la date sous
forme de chaîne de caractères 'AAAA-MM-JJ' (A = année, M = mois, J = jour). Par exemple : le 21
octobre 2011 sera représenté '2011-10-21'.
- Pour une heure, ou une durée, on utilise le type TIME, qui utilise également une chaîne de caractères
pour représenter l'heure : 'HH:MM:SS' (H = heures, M = minutes, S = secondes)
- DATETIME est le type de données représentant une date et une heure, toujours stockées sous forme
de chaîne de caractères : 'AAAA-MM-JJ HH:MM:SS'. Les heures doivent ici être comprises entre 00
et 23, puisqu'il ne peut plus s'agir d'une durée.
Fonction Signification Exemple
NOW() obtenir la SELECT NOW(); renvoie la date et l'heure actuelle au format
date et AAAA-MM-JJ HH:MM:SS
l'heure
actuelles
6
2- Les différentes fonctions et leur traitement
CURDATE() obtenir la SELECT CURDATE() ; renvoie la date au format AAAA-MM-JJ
date
actuelle
CURTIME() obtenir SELECT CURTIME() ; renvoie l'heure au format HH:MM:SS
l'heure
actuelle
DAY(X) extraire le SELECT DAY(CURTIME()); renvoie le jour de la date actuelle
jour de la
date X
MONTH(X) extraire le SELECT MONTH(CURTIME()); renvoie le mois de la date
mois de la actuelle
date X
YEAR(X) extraire SELECT YEAR(CURTIME()); renvoie l'année de la date actuelle
l'année de
la date X
HOUR(X) extraire SELECT HOUR(CURTIME()); renvoie l'heure
l'heure de
X
MINUTE(X) extraire les SELECT MINUTE(CURTIME()); renvoie la minute
minutes de
X
SECOND(X) extraire les SELECT SECOND(CURTIME()); renvoie la seconde
secondes
de X
DATE_FORMAT formater SELECT DATE_FORMAT(NOW(),' Date : %d-%m-%Y Heure
(X,format) une date à : %H:%i:%s'); renvoie la date et l'heure actuelle par exemple :
un format(
%d : Jour
%m : Mois
%Y :
Année
%H :
Heure
%i :
minutes
%s :
Secondes)
7
Application 2 :
Application 2 :
IV
Exercice
Énoncé :
Soit la table suivante :
LIVRE(NUMLIV,NOMAUT ,PRENAUT,TITRELIV,GENRELIV,PRIXLIV)
Donner l'instruction qui permettra d'afficher le nom et le prénoms de l'auteur ensemble.
SELECT ( T, ) FROM ;
Afficher les titres de livres en minuscule et leur genre en majuscule
SELECT , FROM ;