Guide Complet des Principales Fonctions SQL

Ce guide couvre les principales fonctions SQL, y compris les fonctions de transformation, de manipulation des chaînes de caractères, de manipulation des dates, les fonctions mathématiques, les fonctions conditionnelles, et les fonctions d'agrégation. Chaque section est accompagnée d'exemples de scripts pour illustrer l'utilisation des fonctions.

1. Fonctions de Transformation (CAST et CONVERT)

CAST

Convertit une valeur d'un type de données à un autre. 

SELECT CAST('2023-10-25' AS DATE) AS date_converted;

CONVERT

Similaire à CAST, mais avec une syntaxe spécifique à certains SGBD comme SQL Server.

SELECT CONVERT(DATE, '2023-10-25') AS date_converted;
 

2. Manipulation des Chaînes de Caractères

CONCAT

Concatène deux ou plusieurs chaînes de caractères.

SELECT CONCAT('Bonjour', ' ', 'le monde') AS message;
 

SUBSTRING

Extrait une sous-chaîne d'une chaîne de caractères.

SELECT SUBSTRING('Bonjour le monde', 9, 2) AS sous_chaine; -- Résultat: "le"
 

LENGTH (ou LEN)

Retourne la longueur d'une chaîne de caractères.

SELECT LENGTH('Bonjour') AS longueur; -- Résultat: 7
 

UPPER et LOWER

Convertit une chaîne en majuscules ou en minuscules.

SELECT UPPER('Bonjour') AS majuscules; -- Résultat: "BONJOUR"
SELECT LOWER('BONJOUR') AS minuscules; -- Résultat: "bonjour"
 

TRIMLTRIMRTRIM

Supprime les espaces en début et/ou fin de chaîne. 

SELECT TRIM('  Bonjour  ') AS sans_espaces; -- Résultat: "Bonjour"
SELECT LTRIM('  Bonjour') AS sans_espaces_gauche; -- Résultat: "Bonjour"
SELECT RTRIM('Bonjour  ') AS sans_espaces_droite; -- Résultat: "Bonjour"
 

REPLACE

Remplace toutes les occurrences d'une sous-chaîne par une autre. 

SELECT REPLACE('Bonjour le monde', 'le', 'la') AS remplace; -- Résultat: "Bonjour la monde"
 

3. Manipulation des Dates

CURRENT_DATE (ou GETDATE)

Retourne la date actuelle.

SELECT CURRENT_DATE AS aujourdhui;
 

DATEADD

Ajoute un intervalle de temps à une date.

SELECT DATEADD(DAY, 5, '2023-10-25') AS date_ajoutee; -- Ajoute 5 jours
 

DATEDIFF

Calcule la différence entre deux dates.

SELECT DATEDIFF(DAY, '2023-10-25', '2023-11-01') AS difference_jours; -- Résultat: 7
 

DATEPART

Extrait une partie spécifique d'une date (année, mois, jour, etc.).

SELECT DATEPART(YEAR, '2023-10-25') AS annee; -- Résultat: 2023
 

FORMAT

Formate une date selon un modèle spécifique.

SELECT FORMAT('2023-10-25', 'dd/MM/yyyy') AS date_formatee; -- Résultat: "25/10/2023"
 

4. Fonctions Mathématiques

ROUND

Arrondit un nombre à un certain nombre de décimales.

SELECT ROUND(3.14159, 2) AS arrondi; -- Résultat: 3.14
 

CEILING et FLOOR

Arrondit un nombre à l'entier supérieur ou inférieur.

SELECT CEILING(3.14159) AS plafond; -- Résultat: 4
SELECT FLOOR(3.14159) AS plancher; -- Résultat: 3
 

ABS

Retourne la valeur absolue d'un nombre.

SELECT ABS(-10) AS absolue; -- Résultat: 10
 

POWER

Calcule la puissance d'un nombre.

SELECT POWER(2, 3) AS puissance; -- Résultat: 8
 

SQRT

Calcule la racine carrée d'un nombre.

SELECT SQRT(16) AS racine; -- Résultat: 4
 

5. Fonctions Conditionnelles

CASE

Permet de définir des conditions dans une requête.

SELECT nom,
       CASE
           WHEN age < 18 THEN 'Mineur'
           ELSE 'Majeur'
       END AS statut
FROM utilisateurs;
 

COALESCE

Retourne la première valeur non nulle dans une liste.

SELECT COALESCE(NULL, 'Valeur par défaut') AS valeur; -- Résultat: "Valeur par défaut"
 

NULLIF

Retourne NULL si deux valeurs sont égales.

SELECT NULLIF(10, 10) AS resultat; -- Résultat: NULL
 

6. Fonctions d'Aggrégation

COUNT

Compte le nombre de lignes.

 

SELECT COUNT(*) AS total_lignes FROM utilisateurs;

 

SUM

Calcule la somme des valeurs d'une colonne.

SELECT SUM(salaire) AS total_salaires FROM employes;

 

AVG

Calcule la moyenne des valeurs d'une colonne.

 
SELECT AVG(salaire) AS moyenne_salaires FROM employes;
 

MIN et MAX

Retourne la valeur minimale ou maximale d'une colonne. 

 
SELECT MIN(salaire) AS salaire_min FROM employes;
SELECT MAX(salaire) AS salaire_max FROM employes;
 

GROUP_CONCAT (ou STRING_AGG)

Concatène les valeurs d'une colonne pour chaque groupe. 

 
SELECT departement, STRING_AGG(nom, ', ') AS employes
FROM employes
GROUP BY departement;
 

Récapitulatif des Fonctions SQL

Catégorie Fonction Description Exemple
Transformation CAST Convertit un type de données en un autre. CAST('2023-10-25' AS DATE)
CONVERT Convertit un type de données (syntaxe spécifique). CONVERT(DATE, '2023-10-25')
Chaînes de caractères CONCAT Concatène des chaînes. CONCAT('Bonjour', ' ', 'le monde')
SUBSTRING Extrait une sous-chaîne. SUBSTRING('Bonjour le monde', 9, 2)
LENGTH Retourne la longueur d'une chaîne. LENGTH('Bonjour')
UPPER / LOWER Convertit en majuscules/minuscules. UPPER('Bonjour')
TRIM Supprime les espaces en début et fin. TRIM(' Bonjour ')
REPLACE Remplace une sous-chaîne. REPLACE('Bonjour le monde', 'le', 'la')
Dates CURRENT_DATE Retourne la date actuelle. CURRENT_DATE
DATEADD Ajoute un intervalle à une date. DATEADD(DAY, 5, '2023-10-25')
DATEDIFF Calcule la différence entre deux dates. DATEDIFF(DAY, '2023-10-25', '2023-11-01')
DATEPART Extrait une partie d'une date. DATEPART(YEAR, '2023-10-25')
FORMAT Formate une date. FORMAT('2023-10-25', 'dd/MM/yyyy')
Mathématiques ROUND Arrondit un nombre. ROUND(3.14159, 2)
CEILING / FLOOR Arrondit à l'entier supérieur/inférieur. CEILING(3.14159)
ABS Retourne la valeur absolue. ABS(-10)
POWER Calcule la puissance. POWER(2, 3)
SQRT Calcule la racine carrée. SQRT(16)
Conditionnelles CASE Définit des conditions. CASE WHEN age < 18 THEN 'Mineur' ELSE 'Majeur' END
COALESCE Retourne la première valeur non nulle. COALESCE(NULL, 'Valeur par défaut')
NULLIF Retourne NULL si deux valeurs sont égales. NULLIF(10, 10)
Aggrégation COUNT Compte le nombre de lignes. COUNT(*)
SUM Calcule la somme. SUM(salaire)
AVG Calcule la moyenne. AVG(salaire)
MIN / MAX Retourne la valeur minimale/maximale. MIN(salaire)
GROUP_CONCAT Concatène les valeurs d'une colonne pour chaque groupe. STRING_AGG(nom, ', ')

Ce guide couvre les principales fonctions SQL avec des exemples pratiques. Utilisez-le comme référence pour vos requêtes et analyses de données.