Vous êtes sur la page 1sur 40

1

MERISE MERISE

Prsentation du
Langage SQL

Ingnierie des systmes d information
19/03/2014 LPTR
2
Langage SQL
1. Historique:
Le langage SQL a t labor dans les annes 1970 daprs les thories
dun informaticien britannique : Edgar Frank Codd.
Le docteur Codd est considr comme linventeur du modle relationnel. Il
travaillait au laboratoire de recherche dIBM San Jos en Californie.
IBM mis du temps a croire en la thorie dun langage dinterrogation des
donnes structur et ce sont des entreprises concurrentes telles Oracle
qui les premires misrent sur le langage SQL.
19/03/2014
LPTR
3
Langage SQL
2. Structuration:
Le langage SQL est compos de trois parties majeures et distinctes :
Le DML (Data Manipulation Language) ou LMD (langage de manipulation
des donnes) : le DML permet de consulter ou de modifier le contenu de la
base de donnes.
Le DDL (Data Definition Language) ou LDD (langage de dfinition des
donnes) : le DDL permet de modifier la structure de la base de donnes.
Le DCL (Data Control Language) ou LCD (langage de contrle des
donnes) : le DCL permet de grer les privilges, ou les diffrents droits
des utilisateurs sur la base de donnes.
19/03/2014
LPTR
4
Langage SQL
2. Structuration:
Voici les principaux ordres employs :
19/03/2014
LPTR
DML DDL DCL
SELECT CREATE GRANT
INSERT ALTER REVOKE
DELETE RENAME
UPDATE DROP
5
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Considrant le modle relationnel:
Clients(NumCli, Nom, Prnom, Adresse, Cp, Ville, Tlphone)
Achats(#NumCli, #NumArt, Date, Qt)
Articles(NumArt, Dsignation, Catgorie, Prix)
19/03/2014
LPTR
6
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
19/03/2014
LPTR
7
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
La commande SELECT permet de raliser une recherche dinformations selon certains
critres.
Syntaxe :
SELECT [ALL / DISTINCT] nom_attribut1 [, nom_attribut2, ......]
FROM nom_table1 [, nom_table2, ....]
WHERE <condition de recherche> ;
19/03/2014
LPTR
8
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Loption ALL est loption par dfaut qui permet de slectionner lensemble des lignes
satisfaisant la condition de recherche.
Loption DISTINCT permet de ne conserver que des lignes distinctes, en liminant les
doublons.
La liste des attributs indique la liste des colonnes choisies, spares par des virgules.
Pour slectionner lensemble des colonnes dune table, il est possible dutiliser loption
*.
La liste des tables indique lensemble des tables (spares par des virgules) sur
lesquelles portent les oprations.
La condition de recherche permet dexprimer des critres de recherche complexes
laide doprateurs logiques et/ou de comparateurs arithmtiques.

19/03/2014
LPTR
9
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
A- Projection:
La projection est une opration sur une relation RELATION1 consistant
composer une relation RELATION2 en enlevant la relation initiale tous les
attributs non mentionns en oprande (aussi bien au niveau du schma que
des tuples) et en liminant les tuples en double qui ne sont conservs quune
seule fois.
19/03/2014
LPTR
10
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 1:
SELECT * FROM Clients;
Rsultat renvoy par la requte :
19/03/2014
LPTR
11
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 2:
SELECT Nom, Prnom FROM Clients;
Rsultat renvoy par la requte :
19/03/2014
LPTR
12
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 2: Utilisation des mots cls ALL/DISTINCT.
SELECT Nom FROM Clients;
Comme le mot cl ALL est actif par dfaut, le rsultat retourn par la requte sera le
suivant :
19/03/2014
LPTR
13
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 2: Utilisation des mots cls ALL/DISTINCT.
SELECT DISTINCT Nom FROM Clients;
Rsultat renvoy par la requte :
19/03/2014
LPTR
14
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 3: DISTINCT AS
SELECT DISTINCT Nom AS Nom des clients FROM Clients;
Rsultat renvoy par la requte :
19/03/2014
LPTR
15
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
B- Restriction:
La restriction est une opration sur une relation RELATION1 produisant une relation
RELATION2 de mme schma mais comportant les seuls tuples qui vrifient la
condition prcise en oprande.
19/03/2014
LPTR
16
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 4:
Requte permettant de: Slectionner les clients habitants
Rodez.
SELECT * FROM Clients WHERE Ville=Rodez;
19/03/2014
LPTR
17
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 5:
Requte permettant de: Slectionner les clients habitants
Rodez.
SELECT * FROM Clients WHERE Ville=Rodez;
19/03/2014
LPTR
18
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 6:
Requte permettant de: Lister les articles dont le prix est
suprieur 15 euros.
SELECT * FROM Articles WHERE Prix>15;

NB: Les apostrophes ne servent que pour diffrencier les
valeurs alphanumriques des valeurs numriques.
19/03/2014
LPTR
19
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Clause WHERE
Dans la clause WHERE, les oprateurs suivants peuvent tre utiliss :
19/03/2014
LPTR
20
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 7:
Requte permettant de: Lister les articles dont le prix est
compris entre 14 et 30 euros.
SELECT * FROM Articles WHERE prix>14 AND prix <30;
NB: Cette requte est correcte, mais manque dlgance. Il existe dautres mots cls
permettant dexprimer certaines contraintes.
19/03/2014
LPTR
21
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
Exemple 7:
Reformulons la requte prcdente pour la rendre plus lgante :
SELECT * FROM Articles WHERE prix BETWEEN 14 AND 30;
19/03/2014
LPTR
22
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
19/03/2014
LPTR
23
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
19/03/2014
LPTR
24
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
19/03/2014
LPTR
25
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
C- TRI:
Avec SQL, il est possible deffectuer des tris selon diffrents critres grce la clause
ORDER BY et aux mots cls ASC, DESC. Par dfaut le tri est par ordre croissant.
19/03/2014
LPTR
26
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: TRI
19/03/2014
LPTR
27
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
D- Les jointures:
La jointure est lopration consistant rapprocher selon une condition les tuples de
deux relations RELATION1 et RELATION2 afin de former une troisime relation
RELATION3 qui contient lensemble de tous les tuples obtenus en concatnant un tuple
de RELATION1 et un tuple de RELATION2 vrifiant la condition de rapprochement.
19/03/2014
LPTR
28
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Jointures
19/03/2014
LPTR
NB: Les noms de tables peuvent devenir fastidieux saisir, on peut simplifier lcriture en utilisant le
mot cl AS.
29
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Jointures
19/03/2014
LPTR
30
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
E. Les fonctions statistiques:
SQL offre cinq fonctions mathmatiques standard :
19/03/2014
LPTR
31
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Les fonctions statistiques
19/03/2014
LPTR
32
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Les fonctions statistiques
19/03/2014
LPTR
NB: Le problme avec cette requte cest quelle va retourner le nombre total de lignes dans la colonne catgorie (5
dans la table exemple), mais pas le nombre de catgories uniques (3 dans la table exemple). Voici comment corriger
ce problme.
33
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Les fonctions statistiques
19/03/2014
LPTR
NB: En dehors de ces fonctions, il est possible aussi deffectuer des calculs dans les requtes. Imaginons que nous
dsirions afficher les prix augments de 10%. Voici une faon de lcrire :
NB: La valeur nest pas modifie dans le fichier, la valeur est calcule juste pour laffichage.
34
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
F- Les oprations portant sur des ensembles:
Lalgbre relationnelle permet lutilisation doprateurs ensemblistes. Il en existe trois :
UNION,
INTERSECT,
EXCEPT.

19/03/2014
LPTR
NB: Les mots cls INTERSECT et EXCEPT ntant pas normaliss dans SQL, ils risquent de ne pas tre fonctionnels
dans le SGBD. Le mot cl EXCEPT peut tre remplac par NOT EXISTS et INTERSECT par EXISTS.
35
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Les oprations portant sur des ensembles
Le mot cl UNION retourne lensemble des tuples appartenant aux relations de la requte.
Exemple:
19/03/2014
LPTR
36
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
F- Les regroupements:
Les regroupements permettent de crer des sous-ensembles doccurrences. Une seule ligne regroupe ainsi les valeurs
identiques en fonction de lattribut spcifi.
Imaginons que dans le fichier achat nous souhaitons avoir le total des prix par catgorie. Par exemple ceci :
19/03/2014
LPTR
37
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Regroupements
19/03/2014
LPTR
38
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Regroupements
19/03/2014
LPTR
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Regroupements
Lorsque lon souhaite raliser des restrictions sur la clause de regroupement, il faut utiliser la clause HAVING.
40
Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
F. Les sous requtes:
19/03/2014
LPTR