Les fonctions dans SQL
Date de publication : 20/06/2003
Par
SQLPro (autres articles) (CV)
niveau : débutant
Le présent tableau fait une synthèse des fonctions de la norme SQL, mais aussi des fonctions que l'on trouve dans les principaux dialectes des SGBDR que sont Paradox, Access, MySQL, PostGreSQL, SQL Server, Oracle et InterBase. Ce tableau ne prétend pas à l'exhaustivité mais permet la comparaison de l'implémentation des fonctions du SQL dans différents dialectes.
1. Les fonctions dans SQL
1.1. Agrégation statistique
1.2. Fonction "système"
1.3. Fonctions générales
1.4. Fonctions de chaînes de caractères
1.5. Fonctions de chaînes de bits
1.6. Fonctions numériques
1.7. Fonctions temporelles
1.8. Prédicat, opérateurs et structures diverses
1.9. Sous requêtes
1. Les fonctions dans SQL
Légende :
O : Oui N : Non X : Existe mais syntaxe hors norme ! : Même nom mais fonction différente
1.1. Agrégation statistique
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
AVG
Moyenne
O
O
O
O
O
O
O
O
COUNT
Nombre
O
O
X
O
O
O
O
O
MAX
Maximum
O
O
O
O
O
O
O
O
MIN
Minimum
O
O
O
O
O
O
O
O
SUM
Total
O
O
O
O
O
O
O
O
1.2. Fonction "système"
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
CURRENT_DATE
Date courante
O
N
N
O
O
N
N
O
CURRENT_TIME
Heure courante
O
N
N
O
O
N
N
O
CURRENT_TIMESTAMP
Date et heure courante
O
N
N
O
O
O
N
O
CURRENT_USER
Utilisateur courant
O
N
N
N
O
O
N
N
SESSION_USER
Utilisateur autorisé
O
N
N
X
O
O
N
N
SYSTEM_USER
Utilisateur système
O
N
N
X
O
O
N
N
CURDATE
Date du jour
N
N
N
O
N
N
N
N
CURTIME
Heure courante
N
N
N
O
N
N
N
N
DATABASE
Nom de la bases de données courante
N
N
N
O
N
O
O
N
GETDATE
Heure et date courante
N
N
N
N
N
O
N
N
NOW
Heure et date courante
N
O
O
O
O
O
O
N
SYSDATE
Date et/ou heure courante
N
N
N
O
N
N
O
N
TODAY
Date du jour
N
O
N
N
N
N
N
N
USER
Utilisateur courant
N
N
N
O
N
O
O
O
VERSION
Version du SGBDR
N
N
N
O
O
N
N
N
1.3. Fonctions générales
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
CAST
Transtypage
O
O
N
O
O
O
O
O
COALESCE
Valeur non NULL
O
N
N
O
O
O
N
N
NULLIF
Valeur NULL
O
N
N
O
O
O
N
N
OCTET_LENGTH
Longueur en octet
O
N
N
O
O
N
O
N
DATALENGTH
Longueur
N
N
N
N
N
O
N
N
DECODE
Fonction conditionnelle
N
N
N
N
N
N
O
N
GREATEST
Plus grande valeur
N
N
N
O
N
N
O
N
IFNULL
Valeur non NULL
N
N
N
O
O
O
N
N
LEAST
Plus petite valeur
N
N
N
N
O
N
O
N
LENGTH
Longueur
N
N
O
O
O
O
O
N
NVL
Valeur non NULL
N
N
N
N
N
N
O
N
TO_CHAR
Conversion de données en chaîne
N
N
N
N
N
N
O
N
TO_DATE
Conversion en date
N
N
N
N
O
N
O
N
TO_NUMBER
Conversion en nombre
N
N
N
N
N
N
O
N
1.4. Fonctions de chaînes de caractères
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
||
Concaténation
O
O
N
X
O
N
O
O
CHAR_LENGTH
Longueur d'une chaîne
O
N
N
X
O
N
N
N
CHARACTER_LENGTH
Longueur d'une chaîne
O
N
N
O
O
O
N
N
COLLATE
Substitution à une séquence de caractères
O
N
N
N
N
N
N
O
CONCATENATE
Concaténation
O
N
N
N
N
O
N
N
CONVERT
Conversion de format de caractères
O
N
N
N
N
!
O
O
LIKE (prédicat)
Comparaison partielle
O
O
X
O
O
O
O
O
LOWER
Mise en minuscule
O
O
N
O
O
O
O
N
POSITION
Position d'une chaîne dans une sous chaîne
O
N
N
O
O
N
N
N
SUBSTRING
Extraction d'une sous chaîne
O
O
N
O
O
N
N
N
TRANSLATE
Conversion de jeu de caractères
O
N
N
N
X
N
X
N
TO_CHAR
Conversion de données en chaîne
N
N
N
N
N
N
O
N
TRIM
Suppression des caractères inutiles
O
O
N
O
O
N
O
N
UPPER
Mise en majuscule
O
O
N
O
O
O
O
O
CHAR
Conversion de code en caractère ASCII
N
N
O
O
N
O
N
N
CHAR_OCTET_LENGTH
Longueur d'une chaîne en octets
N
N
N
N
N
O
N
N
CHARACTER_MAXIMUM_LENGTH
Longueur maximum d'une chaîne
N
N
N
N
N
O
N
N
CHARACTER_OCTET_LENGTH
Longueur d'une chaîne en octets
N
N
N
N
N
O
N
N
CONCAT
Concaténation
N
N
O
O
N
O
O
N
ILIKE
LIKE insensible à la casse
N
N
N
N
O
N
N
N
INITCAP
Initiales en majuscule
N
N
N
N
O
N
O
N
INSTR
Position d'une chaîne dans une autre
N
N
O
O
N
N
O
N
LCASE
Mise en minuscule
N
N
O
O
N
O
O
N
LOCATE
Position d'une chaîne dans une autre
N
O
O
O
N
O
O
N
LPAD
Remplissage à gauche
N
N
N
O
O
N
O
N
LTRIM
TRIM à gauche
N
O
O
O
O
O
O
N
NCHAR
Conversion de code en caractère UNICODE
N
N
N
N
N
O
N
N
PATINDEX
Position d'un motif dans une chaîne
N
N
N
N
N
O
N
N
REPLACE
Remplacement de caractères
N
N
N
O
N
O
O
N
REVERSE
Renversement
N
N
N
O
N
O
O
N
RPAD
Remplissage à droite
N
N
N
O
O
N
O
N
RTRIM
TRIM à droite
N
N
O
O
O
O
O
N
SPACE
Génération d'espaces
N
N
O
O
N
O
O
N
SUBSTR
Extraction d'une sous chaîne
N
N
N
N
N
N
O
N
UCASE
Mise en majuscule
N
N
O
O
N
O
O
N
1.5. Fonctions de chaînes de bits
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
BIT_LENGTH
Longueur en bit
O
N
N
N
N
N
N
N
&
"et" pour bit logique
N
N
?
?
?
O
?
?
|
"ou" pour bit logique
N
N
?
?
?
O
?
?
^
"ou" exclusif pour bit logique
N
N
?
?
?
O
?
?
1.6. Fonctions numériques
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
%
Modulo
N
N
N
O
O
O
N
N
+ - * / ( )
Opérateurs et parenthésage
O
O
O
O
O
O
O
O
ABS
Valeur absolue
N
N
O
O
O
O
O
N
ASCII
Conversion de caractère en code ASCII
N
N
O
O
O
O
O
N
ASIN
Angle de sinus
N
N
N
O
O
O
O
N
ATAN
Angle de tangente
N
N
N
O
O
O
O
N
CEILING
Valeur approchée haute
N
N
O
O
N
O
N
N
COS
Cosinus
N
N
O
O
O
O
O
N
COT
Cotangente
N
N
O
O
O
O
N
N
EXP
Exponentielle
N
N
O
O
O
O
O
N
FLOOR
Valeur approchée basse
N
N
O
O
O
O
O
N
LN
Logarithme népérien
N
N
N
N
N
N
O
N
LOG
Logarithme népérien
N
N
O
O
N
O
O
N
LOG(n,m)
Logarithme en base n de m
N
N
N
N
O
N
O
N
LOG10
Logarithme décimal
N
N
N
O
N
O
O
N
MOD
Modulo
N
N
O
O
O
O
O
N
PI
Pi
N
N
N
O
O
O
O
N
POWER
Elévation à la puissance
N
N
O
O
N
O
O
N
RAND
Valeur aléatoire
N
N
O
O
N
O
N
N
ROUND
Arrondi
N
N
O
O
O
O
N
N
SIGN
Signe
N
N
O
O
O
O
O
N
SIN
Sinus
N
N
O
O
O
O
O
N
SQRT
Racine carrée
N
N
O
O
O
O
N
N
TAN
Tangente
N
N
O
O
O
O
O
N
TRUNC
Troncature
N
N
N
N
N
N
O
N
TRUNCATE
Troncature
N
N
O
O
O
O
N
UNICODE
Conversion de caractère en code UNICODE
N
N
N
N
N
O
?
N
1.7. Fonctions temporelles
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
EXTRACT
Partie de date
O
O
N
O
O
N
O
N
INTERVAL (opérations sur)
Durée
O
N
N
N
N
N
O
N
OVERLAPS (prédicat)
Recouvrement de période
O
N
N
N
O
N
N
N
ADDDATE
Ajout d'intervalle à une date
N
N
N
O
N
N
N
N
AGE
Age
N
N
N
N
O
N
N
N
DATE_ADD
Ajout d'intervalle à une date
N
N
N
O
N
N
N
N
DATE_FORMAT
Formatage de date
N
N
N
O
N
N
N
N
DATE_PART
Partie de date
N
N
N
N
O
N
N
N
DATE_SUB
Retrait d'intervalle à une date
N
N
N
O
N
N
N
N
DATEADD
Ajout de date
N
N
N
N
N
O
N
N
DATEDIFF
Retrait de date
N
N
N
N
N
O
N
N
DATENAME
Nom d'une partie de date
N
N
N
N
N
O
N
N
DATEPART
Partie de date
N
N
N
N
N
O
N
N
DAY
Jour d'une date
N
N
N
N
N
O
N
N
DAYNAME
Nom du jour
N
N
O
O
N
O
N
N
DAYOFMONTH
Jour du mois
N
N
N
O
N
N
N
N
DAYOFWEEK
Jour de la semaine
N
N
N
O
N
N
N
N
DAYOFYEAR
Jour dans l'année
N
N
N
O
N
N
N
N
HOUR
Extraction de l'heure
N
N
O
O
N
O
N
N
LAST_DAY
Dernier jour du mois
N
N
N
N
N
N
O
N
MINUTE
N
N
O
O
N
O
N
N
MONTH
Mois d'une date
N
N
O
O
N
O
O
N
MONTH_BETWEEN
MONTH_BETWEEN
N
N
N
MONTHNAME
Nom du mois
N
N
O
O
N
O
N
N
NEXT_DAY
Prochain premier jour de la semaine
N
N
N
N
N
N
O
N
SECOND
Extrait les secondes
N
N
O
O
N
O
N
N
SUBDATE
Retrait d'intervalle à une date
N
N
N
O
N
N
N
N
WEEK
Numéro de la semaine
N
N
O
O
N
O
O
N
YEAR
Année d'une date
N
N
O
O
N
O
O
N
1.8. Prédicat, opérateurs et structures diverses
Fonction
Description
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
CASE
Structure conditionnelle
O
N
N
O
O
O
X
O
IS [NOT] TRUE
Vrai
O
N
N
N
N
N
N
N
IS [NOT] FALSE
Faux
O
N
N
N
N
N
N
N
IS [NOT] UNKNOWN
Inconnu
O
N
N
N
N
N
N
N
IS [NOT] NULL
NULL
O
O
X
O
O
O
O
O
INNER JOIN
Jointure interne
O
O
O
O
O
O
N
O
LEFT, RIGHT, FULL OUTER JOIN
Jointure externe
O
O
O
O
O
O
N
O
NATURAL JOIN
Jointure naturelle
O
N
N
O
O
N
N
N
UNION JOIN
Jointure d'union
O
N
N
N
N
N
N
N
LEFT, RIGHT, FULL OUTER NATURAL JOIN
Jointure naturelle externe
O
N
N
X
O
N
N
N
INTERSECT
Intersection (ensemble)
O
?
N
N
O
N
X
N
UNION
Union (ensemble)
O
?
O
N
O
O
O
O
EXCEPT
Différence (ensemble)
O
?
N
N
O
N
N
N
[NOT] IN
Liste
O
O
O
X
O
O
O
O
[NOT] BETWEEN
Fourchette
O
O
O
O
O
O
O
[NOT] EXISTS
Existence
O
?
?
N
O
O
O
O
ALL
Comparaison à toutes les valeurs d'un ensemble
O
?
O
N
O
O
O
O
ANY / SOME
Comparaison à au moins une valeur de l'ensemble
O
?
O
N
O
O
O
O
UNIQUE
Existance sans doublons
O
N
N
N
N
N
N
N
MATCH UNIQUE
Correspondance
O
N
N
N
N
N
N
N
row value construteur
Construteur de ligne valuées
O
N
N
N
N
N
O
N
MINUS
Différence (ensemble)
N
N
N
N
O
N
O
N
LIMITE
nombre de ligne retournée
N
N
TOP
LIMIT
LIMIT
TOP
N
ROWS
identifiant de ligne
N
N
N
_rowid
oid
N
rowid
?
1.9. Sous requêtes
Fonction
Norme SQL
Paradox
Access
MySQL
PostGreSQL
SQL Server
Oracle
Interbase
Imbriquées
O
O
O
N
O
O
O
O
Corrélées
O
O
O
N
O
O
O
O
Dans la clause SELECT
O
X
O
N
O
O
O
O
Dans la clause FROM
O
N
N
N
O
O
O
N
Dans la clause WHERE
O
O
O
N
O
O
O
O
Dans la clause HAVING
O
O
N
N
O
O
O
O
Copyright © 2003 Frédéric Brouard. Aucune reproduction, même partielle, ne peut être faite
de ce site et de l'ensemble de son contenu : textes, documents, images, etc
sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD .