Vous êtes sur la page 1sur 40

MERISE

Prsentation du
Langage SQL
Ingnierie des systmes d information

19/03/2014

LPTR

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

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

Langage SQL

2. Structuration:
Voici les principaux ordres employs :

19/03/2014

DML

DDL

DCL

SELECT

CREATE

GRANT

INSERT

ALTER

REVOKE

DELETE

RENAME

UPDATE

DROP

LPTR

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

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:

19/03/2014

LPTR

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

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
19/03/2014
8
LPTR
laide doprateurs logiques et/ou de comparateurs arithmtiques.

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

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

10

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

11

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

12

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

13

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

14

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

15

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

16

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

17

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

18

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

19

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

20

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

21

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:

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:
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

25

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: TRI

19/03/2014

LPTR

26

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

27

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Jointures

NB: Les noms de tables peuvent devenir fastidieux saisir, on peut simplifier lcriture en utilisant le
mot cl AS.
19/03/2014

LPTR

28

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Jointures

19/03/2014

LPTR

29

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

30

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Les fonctions statistiques

19/03/2014

LPTR

31

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Les fonctions statistiques

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.

19/03/2014

LPTR

32

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Les fonctions statistiques

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.

19/03/2014

LPTR

33

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.
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.

19/03/2014

LPTR

34

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

35

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

36

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT: Regroupements

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
Lorsque lon souhaite raliser des restrictions sur la clause de regroupement, il faut utiliser la clause HAVING.

Langage SQL
2.1 Langage de Manipulation des Donnes : LMD
SELECT:
F. Les sous requtes:

19/03/2014

LPTR

40

Vous aimerez peut-être aussi