Les fonctions SQL
Les fonctions de base des SGBD sont les 4 opérateurs arithmétiques : +, -, * et /
Ils sont présents dans tous les SGBD.
D’autres fonctions pourront être présentes en fonction des SGBD
- Par exemple : exponentielle, logarithme, trigonométrie, etc.
Il faudra donc effectuer des recherches sur internet et dans la documentation des SGBD pour s’y retrouver…
Les fonctions de chaînes de caractères
CHAR_LENGTH(s)
: donne le nombre de caractères de la chaîne sPOSITION(s1 IN s2)
: donne :- la position de la chaîne
s1
dans la chaînes2
1
sis1
est vide0
sis1
n’apparaît pas danss2
s1 || s2
: construit une chaîne composée de la concaténation des1
ets2
LOWER(s)
: convertit la chaîne s en minusculeUPPER(s)
: convertit la chaîne s en majusculeSUBSTRING(s FROM I FOR L)
: construit une chaîne de longueur L à partir de la chaîne s débutant à l’indice ITRIM(e c FROM s)
: supprime les caractèresc
à l’extrémitée
de la chaînes
e
peut prendre pour valeurLEADING
,TRAILING
etBOTH
- Exemple :
TRIM (BOTH ' ' FROM ADRESSE || ' ' || UPPER(LOCALITE) )
BIT LENGTH(s)
: donne le nombre de bits de la chaînes
OCTET LENGTH(s)
: donne le nombre d’octets occupés par la chaîne de bitss
Les fonctions de conversion
CAST(v AS t)
: convertit la valeur v selon le type t- Exemple :
CAST ( DATECOM AS CHAR(12) )
transforme une date en chaîne de caractères
Les fonctions d’extraction
Pour PostgreSQL :
EXTRACT(u FROM dt)
: donne, sous la forme numérique, le composant u de ma valeur temporelledt
;- les valeurs possibles de
u
sont :YEAR
,MONTH
,DAY
,HOUR
,MINUTE
,SECOND
- Exemple :
EXTRACT (YEAR FROM DATECOM)+1
EXTRACT (HOUR FROM CURRENT TIME) > 18
Pour SQLite :
Par exemple, on peut extraire le mois de la date de commande :
1SELECT * FROM Commandes WHERE strftime('%m', dateCommande) = '05';
Commandes |
---|
L’instruction CASE
Comme dans certains langages de programmation, CASE
permet de renvoyer une valeur choisie parmi plusieurs.
Exemple :
1SELECT numero, nom,2CASE SUBSTR(categorie, 1, 1)3 WHEN 'A' then 'bon'4 WHEN 'B' then 'moyen'5 WHEN 'C' then 'occasionnel'6 ELSE ' inconnu '7END AS 'catégorie',8ville9FROM Clients ;
Clients | |||
---|---|---|---|
numero | nom | catégorie | ville |
1 | Lebreton | bon | Meylan |
2 | Vasseur | moyen | Grenoble |
3 | Da Costa | occasionnel | Paris |
4 | Rey | moyen | Vizille |
5 | Weiss | moyen | Lille |
6 | Berlioz | inconnu | Paris |
7 | Lefevre | occasionnel | Lyon |
9 | Barda | occasionnel | Paris |
8 | Jacques | occasionnel | Paris |
Conclusion
- On peut effectuer des calculs sur les données extraites
- On peut renommer les colonnes du résultat
- On peut utiliser des fonctions pour manipuler les données