Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Forums FAQ Tutoriels SQL Livres Access DB2 Firebird InterBase MySQL Oracle PostGreSQL SQL-Server Sybase

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

Livres
SQL - développement
SQL - le cours de référence sur le langage SQL
Avant d'aborder le SQL
Définitions
SGBDR fichier ou client/serveur ?
La base de données exemple (gestion d'un hôtel)
Modélisation MERISE
Mots réservés du SQL
Le SQL de A à Z
Les fondements
Le simple (?) SELECT
Les jointures, ou comment interroger plusieurs tables
Groupages, ensembles et sous-ensembles
Les sous-requêtes
Insérer, modifier, supprimer
Création des bases
Gérer les privilèges ("droits")
Toutes les fonctions de SQL
Les techniques des SGBDR
Les erreur les plus fréquentes en SQL
Les petits papiers de SQLPro
Conférence Borland 2003
L'héritage des données
Données et normes
Modélisation par méta données
Optimisez votre SGBDR et vos requêtes SQL
Le temps, sa mesure, ses calculs
QBE, le langage de ZLOOF
Des images dans ma base
La jointure manquante
Clefs auto incrémentées
L'indexation textuelle
L'art des "Soundex"
Une seule colonne, plusieurs données
La division relationnelle, mythe ou réalité ?
Gestion d'arborescence en SQL
L'avenir de SQL
Méthodes et standards
Les doublons
SQL Server
Eviter les curseurs
Un aperçu de TRANSACT SQL V 2000
SQL Server 2000 et les collations
Sécurisation des accès aux bases de données SQL Server
Des UDF pour SQL Server
SQL Server et le fichier de log...
Paradox
De vieux articles publiés entre 1995 et 1999 dans la défunte revue Point DBF


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.

Responsable bénévole de la rubrique SQL & SGBD : Frédéric Dubois (orafrance) - Contacter par EMail :
Vos questions techniques : forum d'entraide SQL & SGBD - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.