Vous êtes sur la page 1sur 28

ROYAUME DU MAROC

Office de la Formation Professionnelle et de la Promotion du Travail

SQL - Sous Ensemble LMD Opérations de Base

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 - Sous Ensemble LMD Opérations de Base

Sommaire

1. Introduction_____________________________________________________________2
1.1. Bref Historique____________________________________________________________2
1.2. Définition_________________________________________________________________2
2. Opération de sélection_____________________________________________________3
2.1. Requêtes de type détail sur une seule table______________________________________3
2.1.1. Utilisation du mot clé DISTINCT__________________________________________________4
2.2. Fonctions de groupe_________________________________________________________5
2.2.1. Quelques exemples pour comprendre :______________________________________________6
2.3. Les opérateurs_____________________________________________________________8
2.3.1. Opérateurs arithmétiques_________________________________________________________8
2.3.2. Opérateurs de comparaison_______________________________________________________9
2.3.3. Opérateurs logiques_____________________________________________________________9
3. Eléments de dialectes_____________________________________________________13

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 1 - 28
SQL - Sous Ensemble LMD Opérations de Base

1.Introduction
Ce support a pour but de vous présenter le sous ensemble du langage SQL
utilisé pour manipuler des données au sein d’un Système de Gestion de
Bases de Données Relationnel.
On utilisera le terme de Langage de Manipulation de Données (LMD) pour
qualifier ce sous-ensemble (de DML Data Management Language en
anglais).
Avant d’aborder le langage SQL proprement dit, prenez connaissance du
document sur l’algèbre relationnel qui vous permettra de mieux comprendre
les notions sous-jacentes aux opérations traitées dans ce document.

Seront traités dans ce document :

 Eléments syntaxiques relatifs à SQL


 Exemples de manipulation de données au travers des opérations de
Sélection, Suppression, Mise à jour et Ajout.
 Différences syntaxiques au sein des différents dialectes SQL (document
joint)

1.1. Bref Historique


S.Q.L. est un langage structuré qui permet :
 de créer la structure d’une base de données relationnelle (base, tables, …)
 d’interroger et de modifier les données contenues dans ce type de base de
données.

S.Q.L. signifie Structured Query Language.


Il est issu de SEQUEL : Structured English Query Language.
C’est le premier langage pour les S.G.B.D. Relationnels.
Il a été développé par IBM en 1970 pour système R, son 1er SGBDR.

S.Q.L. a été reconnu par l’ANSI (Association de Normalisation des Systèmes


d’Information) puis s’est imposé comme norme.
Il n’existe pas de S.G.B.D. Relationnel sans S.Q.L..

Malheureusement, malgré la norme S.Q.L., il existe un ensemble de


dialectes. Les différences entre ces différents dialectes sont souvent
minimes et tous respectent un minimum commun.
Il existe aujourd’hui une troisième version de SQL, SQL 3, qui proposera de
nouveaux éléments syntaxiques mieux à même de prendre en compte les
évolutions technologiques liées au développement de systèmes à objets.

1.2. Définition
S.Q.L. est un langage relationnel qui permet d’effectuer les tâches
suivantes :
 Définition et modification de la structure de la base de données
 Interrogation et modification non procédurale (c’est à dire interactive) de
la base de données
 Contrôle de sécurité et d’intégrité de la base
 Sauvegarde et restauration des bases
Document Millésime Page
OFPPT @ 739174796.doc novembre 08 2 - 28
SQL - Sous Ensemble LMD Opérations de Base

S.Q.L. est un langage interactif, mais il peut aussi être intégré dans un
langage de programmation pour le développement d’applications.

S.Q.L. est un standard qui permet d’assurer une portabilité importante des
bases de données relationnelles.

2.Opération de sélection
L’instruction SELECT permet d’extraire des données et de les présenter
triées et/ou regroupées suivant certains critères.
Les enregistrements doivent vérifier certains critères exprimés dans des
expression conditionnelles.

Syntaxe de l’instruction SELECT présentant les différentes clauses utilisables


dans les sélections. Certaines clauses sont facultatives, mais il est important
de respecter l’ordre d’apparition des clauses dans la requête.

SELECT liste des attributs à afficher


[DISTINCT] mot clé facultatif (élimination des doublons)
FROM liste des noms de tables
WHERE condition sur les attributs
GROUP BY nom de l’attribut de regroupement
HAVING condition de regroupement
ORDER BY critère de tri

2.1. Requêtes de type détail sur une seule table


Ensemble des informations concernant les vols partant après 16 h.

SELECT *
FROM Vol
WHERE HeureDepart > 16

Figure 1: Ensemble des informations concernant les vols partant après 16 h.


En fait, nous n’avons pas besoin de tous les attributs de la table des vols.
Certaines informations, comme le N° d’avion ou le pilote, ne nous
intéressent pas dans l’élaboration de la réponse au client voulant connaître
les horaires.
Par contre, celui-ci nous précise qu’il s’agit d’un vol au départ de Toulouse
et à destination de Grenoble.

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 3 - 28
SQL - Sous Ensemble LMD Opérations de Base
Nous alors donc restreindre les attributs retenus dans l’opération SELECT au
moyen d’une Projection et compléter la clause Where.

Rappel : La projection est une opération qui consiste à ne retenir que


certains attributs dans une table

SELECT vol#,heuredepart,heurearrivee
FROM vol
WHERE heuredepart > 16
AND villedepart LIKE 'Toulou%'
AND villearrivee = 'Grenoble'

Nous avons introduit dans la clause WHERE, une opération logique AND et
un opérateur sur chaîne LIKE.

Figure 2 : Vols au départ de Toulouse à destination de Grenoble après 16 h

2.1.1. Utilisation du mot clé DISTINCT


Le résultat d’un SELECT étant un ensemble, il peut y avoir des doublons. Le
mot clé DISTINCT permet de préciser que l’on ne veut qu’un seul
exemplaire des lignes retenues dans la sélection.

Ensemble des types d’avions dont la capacité est supérieure à 250


passagers.

SELECT Marque,TypeAvion, Capacite


FROM AVION
WHERE Capacite > 250

Figure 3 : Types d'avions dont la capacité est supérieure à 250

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 4 - 28
SQL - Sous Ensemble LMD Opérations de Base

Nous ajoutons le mot clé DISTINCT à la sélection et ordonnons les données


par capacités décroissantes :

SELECT DISTINCT Marque,TypeAvion,Capacite


FROM AVION
WHERE Capacite > 250
ORDER BY Capacite DESC

Remarques : la clause ORDER BY doit toujours être exprimée en dernier.


Elle peut contenir plusieurs facteurs séparés par une virgule et l’ordre peut
être croissant ASC (par défaut) ou décroissant DESC.
DISTINCT concerne la totalité des valeurs des attributs : ici, Marque,
TypeAvion et Capacite.

Figure 4 : Sélection ordonnée de lignes distinctes

2.2. Fonctions de groupe


Nous pouvons travailler sur des données consolidées au travers de requêtes
qui, à partir d’un ensemble de lignes sélectionnées, réalisent des opérations
de synthèse sur ces données.

Nous pouvons combiner ainsi des fonctions récapitulatives à la liste des


attributs sélectionnés:

 SUM somme des valeurs de l’attribut


 MIN minimum des valeurs de l’attribut
 MAX maximum des valeurs de l’attribut
 AVG moyenne des valeurs
 COUNT nombre d’enregistrements sélectionnés

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 5 - 28
SQL - Sous Ensemble LMD Opérations de Base

Nous avons à notre disposition des clauses spécifiques à la construction de


requêtes récapitulatives. Nous avons ainsi les clauses :

GROUP BY permet d’exprimer sur quels attributs sont agrégés les données.
HAVING permet de définir une condition sur des valeurs de
regroupement.

2.2.1. Quelques exemples pour comprendre :


Nombre d’avions dans la table AVION

SELECT COUNT(AV#)
FROM AVION

Le résultat est 16 (avec mon jeu d’essai)

Je peux aussi donner un nom de colonne au résultat de l’expression COUNT


en ayant recours au mécanisme des alias : NomColonne AS NomAlias. Nous
verrons que nous devrons recourir de nouveau aux alias dans d’autres
contextes.

SELECT COUNT(AV#) as "Nombre Avions"


FROM AVION

Je peux aussi vouloir comptabiliser le nombre d’avions par marque.


La clause GROUP BY me permet alors de définir les conditions de
regroupement des calculs récapitulatifs :

SELECT COUNT(AV#) as "Nombre Avions"


FROM AVION
GROUP BY Marque

Il serait éminemment préférable de faire figurer le nom de la marque dans


le résultat et de trier les valeurs récapitulatives :

SELECT Marque,COUNT(AV#) as "Nombre Avions"


FROM AVION
GROUP BY Marque
ORDER BY "Nombre Avions" DESC

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 6 - 28
SQL - Sous Ensemble LMD Opérations de Base

Qui peut s’écrire aussi :

SELECT Marque,COUNT(AV#) as "Nombre Avions"


FROM AVION
GROUP BY Marque
ORDER BY COUNT(AV#) DESC

Je peux aussi ne pas vouloir conserver dans mon résultat les marques dont
le nombre d’ avions est inférieur à 3. J’introduis alors dans ma requête une
clause HAVING qui exprime une condition sur une opération de
regroupement.

SELECT Marque,COUNT(AV#) as "Nombre Avions"


FROM AVION
GROUP BY Marque
HAVING COUNT(AV#) > 2 -- on ne peut pas utiliser "Nombre Avions"
ORDER BY COUNT(AV#) DESC

Attention à ne pas confondre la clause HAVING et la clause WHERE qui


filtre les lignes retenues pour les calculs.
Ainsi, si je souhaite ne pas retenir les avions localisés à Toulouse, je
constate que les résultats diffèrent :

SELECT Marque,COUNT(AV#) as "Nombre Avions"


FROM AVION
WHERE localisation <> 'Toulouse' -- Expression de différent
GROUP BY Marque
HAVING COUNT(AV#) > 2
ORDER BY COUNT(AV#) DESC

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 7 - 28
SQL - Sous Ensemble LMD Opérations de Base

Capacités minimum et maximum des Boeing.

SELECT MIN(Capacite) as "Capacite Mini Boeing",


MAX(Capacite) as "Capacite Maxi Boeing"
FROM AVION
WHERE Marque = 'BOEING'

2.3. Les opérateurs


Un opérateur est un symbole spécifiant une action exécutée sur une ou
plusieurs expressions. Nous trouvons en SQL, différentes catégories
d’opérateurs. Je vous présente ici les principaux utilisables dans les
requêtes de sélection.

 Opérateurs arithmétiques
 Opérateurs de comparaison
 Opérateurs logiques
 Opérateur de traitement de chaînes ;

2.3.1. Opérateurs arithmétiques


Utilisables sur toute expression de 2 valeurs numériques et sur les valeurs
de type DateTime ou SmallDateTime (+ et – uniquement)

Opérateur Description
+ (Ajouter) Addition
- (Soustraire) Soustraction
* (Multiplication) Multiplication
/ (Division) Division
% (Modulo) Retourne le reste entier d'une
division.
12 % 5 = 2.

Exemple : Total du CA Net généré par commande

SELECT OrderID, sum(Unitprice * (1-Discount)*Quantity) as "Total


Commande"
FROM [Order Details]
GROUP BY OrderID

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 8 - 28
SQL - Sous Ensemble LMD Opérations de Base

Figure 5 : Somme du CA Net par Commande

Remarques : Attention à la priorité des opérateurs : le plus simple pour


éviter les problèmes de mise au point est de réaliser les opérations entre
parenthèses : les opérations internes (à l’intérieur des parenthèses) sont
évaluées en premier.
Les noms composés des tables doivent être exprimés entre crochets [ ].

2.3.2. Opérateurs de comparaison


Les opérateurs de comparaison testent si deux expressions sont identiques.
Ils peuvent s'utiliser sur toutes les expressions composées de données
structurées, donc à l'exception des expressions de type de données text,
ntext ou image.
Nous reviendrons sur ces types particuliers ultérieurement.

Opérateur Description
= (Égal à) Égal à
> (Supérieur à) Supérieur à
< (Inférieur à) Inférieur à
>= (Supérieur ou égal à) Supérieur ou égal à
<= (Inférieur ou égal à) Inférieur ou égal à
<> (Différent de) Différent de

2.3.3. Opérateurs logiques


Les opérateurs logiques testent la valeur logique d'une condition. Les
opérateurs logiques, comme les opérateurs de comparaison, retournent un
type de données booléen de valeur TRUE ou FALSE.

Un certains nombre d’entre eux (signalés par un * dans le tableau) sont


utilisés pour comparer une valeur scalaire (unique) avec une sous requête.
Nous en illustrerons l’utilisation dans le chapitre consacré aux jointures
ensemblistes.

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 9 - 28
SQL - Sous Ensemble LMD Opérations de Base

Opérateur Description
ALL (*) TRUE si tous les éléments d'un jeu de
comparaisons sont TRUE.
AND TRUE les deux expressions booléennes sont
TRUE.
ANY (*) TRUE si n'importe quel élément d'un jeu de
comparaison est TRUE.
BETWEEN TRUE si l'opérande est situé dans une certaine
plage.
EXISTS (*) TRUE si une sous-requête contient des lignes.
IN (*) TRUE si l'opérande est égal à un élément
d'une liste d'expressions.
LIKE TRUE si l'opérande correspond à un modèle.
NOT Inverse la valeur de tout autre opérateur
booléen.
OR TRUE si l'une ou l'autre expression booléenne
est TRUE.
SOME (*) TRUE si certains éléments d'un jeu de
comparaisons sont TRUE.
* Utilisés avec des sous-requêtes

Exemple : Liste des vols au départ de Toulouse et a destination de Paris


entre 12 et 15 heures.

SELECT vol#, villedepart, villearrivee, heuredepart, heurearrivee


FROM Vol
WHERE Heuredepart BETWEEN 12 AND 15
AND villedepart LIKE 'TOULO%'
AND villearrivee LIKE 'PAR%'

Figure 6 : Illustration utilisation des opérateurs logiques


Syntaxe de l’opérateur Between : Between valeur de début valeur de fin.
Les bornes sont retenues dans la sélection comme le prouve la requête ci-
dessus.

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 10 - 28
SQL - Sous Ensemble LMD Opérations de Base

Syntaxe de l’opérateur Like

Caractère Description
générique
% Toute chaîne de zéro caractère ou plus
_ N'importe quel caractère à cet emplacement
[] Tout caractère de l'intervalle ([a-f]) ou de l'ensemble
spécifié ([abcdef])
[^] Tout caractère en dehors de l'intervalle ([^a-f]) ou de
l'ensemble spécifié (^abcdef]). ^ représente le NOT

L’opérateur LIKE est extrêmement puissant pour réaliser des recherches sur
des chaînes avec des valeurs approximatives.

Quelques exemples illustrant son utilisation.

A noter , l’utilisation :
des caractères - - pour introduire une ligne de commentaires
des caractère /* …. */ pour un bloc de commentaires

-- Liste des noms de pilotes


SELECT nom
FROM Pilote

-- Liste des Pilotes dont le nom contient la chaîne el */


SELECT nom
FROM Pilote
Where nom LIKE '%el%'

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 11 - 28
SQL - Sous Ensemble LMD Opérations de Base

-- Liste des Pilotes dont le 3ème caractère du nom est un r*/


SELECT nom
FROM Pilote
Where nom LIKE '__r%'

-- Liste des Pilotes dont le nom comporte les caractères u,c,ou l


SELECT nom
FROM Pilote
Where nom LIKE '%[cu]%'

-- Liste des Pilotes dont le nom commence par le caractère m ou l


SELECT nom
FROM Pilote
Where nom LIKE '[ml]%'

/* Liste des Pilotes dont le nom commence par le caractère m ou l


et se termine par l */
SELECT nom
FROM Pilote
Where nom LIKE '[ml]%l'

Les opérateurs SOME, ANY et ALL seront vus dans le chapitre suivant
dans le cadre des opérations sur pliusieurs tables.

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 12 - 28
SQL - Sous Ensemble LMD Opérations de Base

3.Eléments de dialectes
SQL est une norme. Mais comme toute norme, elle n’est pas toujours strictement respectée. La syntaxe des différents SGBDR s’éloigne
parfois de cette dernière ou apporte des fonctions non implémentées dans la norme.

Le tableau accompagnant ce document vous permettra d’avoir quelques informations sur l’existence ou non de différentes fonctions par
type de SGBDR.

Par Frédéric BROUARD , 2002

Légende :

O : Oui
N : Non
X : Existe mais syntaxe hors norme
! : Même nom mais fonction différente

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 13 - 28
SQL - Sous Ensemble LMD Opérations de Base

Agrégation statistique
Description Norme SQL Paradox Access MySQL Post SQL Oracle Inter
Fonction GreSQL Server Base
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

Fonction "système"
Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
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 N N N O N O O N
données courante
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 N N N O N N O N
courante
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

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 14 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonctions générales
Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
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 N N N N N N O N
en chaîne
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

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 15 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonctions de chaînes de caractères


Fonction Description Norme Paradox Access MySQL Post SQL Oracle Inter
SQL GreSQL Server Base
|| 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 O N N N N N N O
séquence de caractères
CONCATENATE Concaténation O N N N N N N N
CONVERT Conversion de format O N N N N ! O O
de caractères
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 O N N O O N N N
dans une sous chaîne
SUBSTRING Extraction d'une sous O O N O O N N N
chaîne
TRANSLATE Conversion de jeu de O N N N X N X N
caractères
TRIM Suppression des O O N O O N O N
caractères inutiles
UPPER Mise en majuscule O O N O O O O O
CHAR Conversion de code en N N O O N O N N
caractère ASCII
CHAR_OCTET_LENGTH Longueur d'une chaîne N N N N N O N N
en octets
CHARACTER_MAXIMUM_LENGTH Longueur maximum N N N N N O N N
d'une chaîne
CHARACTER_OCTET_LENGTH Longueur d'une chaîne N N N N N O N N
CONCAT Concaténation N N O O N O O N
ILIKE LIKE insensible à la N N N N O N N N
casse

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 16 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonctions de chaînes de caractères (Suite)


Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
INITCAP Initiales en majuscule N N N N O N O N
INSTR Position d'une chaîne N N O O N N O N
dans une autre
LCASE Mise en minuscule N N O O N O O N
LOCATE Position d'une chaîne N O O O N O O N
dans une autre
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 N N N N N O N N
caractère UNICODE
PATINDEX Position d'un motif dans N N N N N O N N
une chaîne
REPLACE Remplacement de N N N O N O O N
caractères
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
SOUNDEX Code de consonance N N N O O O O N
SPACE Génération d'espaces N N O O N O O N
UCASE Mise en majuscule N N O O N O O N

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 17 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonctions de chaînes de bits


Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
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 N N ? ? ? O ? ?
logique

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 18 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonction numériques
Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
% Modulo N N N O O O N N
+-*/() Opérateurs et O O O O O O O O
parenthésage
ABS Valeur absolue N N O O O O O N
ACOS Angle de cosinus N N N O O O O N
ASCII Conversion de N N O O O O O N
caractère en code
ASCII
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 N N O O N O N N
haute
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 N N O O O O O N
basse
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 N N N N O N O N
de m
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 N N O O N O O N
puissance
RAND Valeur aléatoire N N O O N O N N
ROUND Arrondi N N O O O O N N

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 19 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonction numériques (Suite)


Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
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 N N N N N O ? N
caractère en code
UNICODE

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 20 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonctions temporelles
Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
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 O N N N O N N N
période
ADDDATE Ajout d'intervalle à N N N O N N N N
une date
AGE Age N N N N O N N N
DATE_ADD Ajout d'intervalle à N N N O N N N N
une date
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 à N N N O N N N N
une date
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 N N N N N O N N
date
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 mois 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

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 21 - 28
SQL - Sous Ensemble LMD Opérations de Base

Fonctions temporelles
Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
MONTH_BETWEEN Nombre de mois N N N
MONTHNAME Nom du mois N N O O N O N N
NEXT_DAY Prochain premier jour N N N N N N O N
de la semaine
SECOND Extrait les secondes N N O O N O N N
SUBDATE Retrait d'intervalle à N N N O N N N N
une date
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

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 22 - 28
SQL - Sous Ensemble LMD Opérations de Base

Prédicat, opérateurs et structures diverses


Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
CASE Structure O N N O O O X N
conditionnelle
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 Jointure externe O O O O O O N O
JOIN
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
CROSS JOIN Jointure croisée O N N O O O N N
LEFT, RIGHT, FULL OUTER Jointure naturelle O N N X O N N N
NATURAL JOIN externe
INTERSECT Intersection O ? N N O N X N
(ensemble)
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

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 23 - 28
SQL - Sous Ensemble LMD Opérations de Base

Prédicat, opérateurs et structures diverses


Description Norme Paradox Access MySQL Post SQL Oracle Inter
Fonction SQL GreSQL Server Base
ALL Comparaison à O ? O N O O O O
toutes les valeurs
d'un ensemble
ANY / SOME Comparaison à au moins O ? O N O O O O
une valeur
de l'ensemble
UNIQUE Existance sans O N N N N N N N
doublons
MATCH UNIQUE Correspondance O N N N N N N N
row value construteur Construteur de ligne O N N N N N O N
valuées
MINUS Différence (ensemble) N N N N O O O N
LIMITE nombre de ligne N N TOP LIMIT LIMIT TOP N ROWS
retournée
identifiant de ligne N N N _rowid oid N rowid ?

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 24 - 28
SQL - Sous Ensemble LMD Opérations de Base

Sous requêtes
Norme Paradox Access MySQL Post SQL Oracle Inter
SQL GreSQL Server Base
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

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 25 - 28
SQL - Sous Ensemble LMD Opérations de Base

Pour approfondir le sujet….


Vous trouverez des éléments complémentaires sur le site de Microsoft qui comporte
un portail consacré à SQL Version 2005 et les premiers éléments sur la prochaine
version à venir 2008

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
Frédéric Brouard

Document Millésime Page


OFPPT @ 739174796.doc novembre 08 26 - 28

Vous aimerez peut-être aussi