ROYAUME DU MAROC
Office de la Formation Professionnelle et de la Promotion du Travail
SQL Les fonctions intégrées
DIRECTION RECHERCHE ET INGENIERIE DE FORMATION
SECTEUR NTIC
ROYAUME DU MAROC
Office de la Formation Professionnelle et de la Promotion du Travail
DIRECTION RECHERCHE ET INGENIERIE DE FORMATION
SECTEUR NTIC
SQL Les fonctions intégrées
Sommaire
1. Introduction_____________________________________________________________2
2. Fonctions de conversion___________________________________________________2
3. Fonctions de traitement de chaînes__________________________________________3
4. Fonctions de manipulation de dates___________________________________________4
Document Millésime Page
OFPPT @ 739174521.doc novembre 08 1-7
SQL Les fonctions intégrées
1.Introduction
Ce support a pour but de vous présenter les principales fonctions intégrées
proposées par SQL Server mais présente aussi sous des formes similaires
sinon identiques sous les principaux SGBDR du marché.
Sont présentées dans ce document :
Fonctions de conversion
Fonctions de traitement de chaînes
Fonctions de manipulation de dates
Quelques fonctions intégrées
SQL server propose de nombreuses fonctions intégrées qui permettent de
manipuler des données utilisateurs ou des données du système.
Je vous livre ici quelques fonctions parmi les plus usitées.
2.Fonctions de conversion
Certaines conversions ne peuvent être automatiquement réalisées par le
système. Nous devons alors réaliser ces conversions de manière explicite au
moyen des fonctions de conversion CAST et CONVERT.
Attention aux types d’origine et résultant de la conversion : toutes les
combinaisons ne sont pas admises.
CONVERT permet de définir un style pour la donnée convertie alors que
CAST ne le permet pas.
La fonction système GETDATE() renvoie la date du jour.
Si je souhaite convertir celle-ci dans un format américain, j’utilise la
fonction CONVERT avec le style approprié.
Pour plus d’informations, voir l’aide de Transact SQL à l’index CONVERT
SELECT CONVERT(DATETIME,GETDATE(),102) AS "Date au format
américain"
Je souhaite que le CA net soit converti et présenté dans un decimal de 10
de long avec 3 chiffres derrière la virgule.
SELECT CONVERT(Decimal(10,3),sum((UnitPrice * 1- Discount) *
Quantity)) AS "TOTAL CA Net"
FROM [Order Details]
Document Millésime Page
OFPPT @ 739174521.doc novembre 08 2-7
SQL Les fonctions intégrées
3.Fonctions de traitement de chaînes
Quelques exemples dans ce tableau car elles sont nombreuses …
Voir aide à l’index fonctions, chaîne
LEFT, RIGHT Extraire des caractères à gauche ou à droite
UPPER,LOWER Mettre en majuscules ou minuscules
LTRIM,RTRIM Suppression des espaces à gauche ou à droite
SUBSTRING Extraction d’une sous chaîne
REVERSE Inversion d’une chaîne (miroir…)
LEN Longueur d’une chaîne
ASCII Valeur ascii d’un caractère
NCHAR Renvoie le caractère Unicode fonction de la
valeur donnée
REPLACE Remplacement d’une occurrence de chaîne
par une autre
Liste des noms des pilotes formatés.
Le premier caractère de gauche est mis en majuscules
Les autres caractères en minuscules
SELECT Upper(Substring(Nom,1,1)) + Substring(Nom,2,Len(Nom)-1)
FROM PILOTE
Remplacement de l’occurrence Toulouse par Ville Rose dans l’attribut Ville
de la Table Pilote.
SELECT REPLACE(VILLE,'Toulouse','Ville Rose')
FROM PILOTE
WHERE VILLE LIKE 'TOUL%'
Document Millésime Page
OFPPT @ 739174521.doc novembre 08 3-7
SQL Les fonctions intégrées
4.Fonctions de manipulation de dates
Fonctions intégrées permettant de manipuler des valeurs de type
DATETIME.
DATEADD Ajout d’un intervalle de temps à une date
DATEDIFF Intervalle de temps entre deux dates
DATEPART Extraction d’une partie de date
DATENAME Chaîne représentant une partie de date
DAY,MONTH,YEAR Renvoie d’une partie de date
GETDATE,GETUTCDATE Date du système
Quelques exemples :
Ajout de 3 jours à la date de naissance du Pilote
SELECT DATEADD(DAY,3,DateNaissance) as "Date + 3 jours",
DateNaissance
FROM Pilote
Nombre de jours entre la date de naissance et la date du jour.
SELECT NOM,DATEDIFF(DAY,DateNaissance,GETDATE()) as "Nombre jours
depuis Naissance"
FROM Pilote
Extrait de portions de la date de naissance avec DatePart et DateName
SELECT DATEPART(MONTH,DateNaissance),
DATENAME(MONTH,DateNaissance)
FROM PILOTE
Document Millésime Page
OFPPT @ 739174521.doc novembre 08 4-7
SQL Les fonctions intégrées
Pour approfondir le sujet….
Vous trouverez des éléments complémentaires dans l’aide consacrée à SQl Server
et au transact-sql.
Consultez les publications de Frédéric Brouard qui reste un expert de référence en
ce qui concerne SQL et les bases de données relationnelles.
Sources de référence
Vincent Bost – formateur AFPA Brive
Document Millésime Page
OFPPT @ 739174521.doc novembre 08 5-7