0% ont trouvé ce document utile (0 vote)
37 vues49 pages

SQL Part1

L'algèbre relationnelle est un langage formel utilisé pour manipuler des relations, tandis que SQL est un langage de programmation pour gérer des bases de données relationnelles. Le document présente divers opérateurs de l'algèbre relationnelle, tels que la projection, la sélection, l'union, l'intersection, la différence et le produit cartésien, ainsi que leurs équivalents en SQL. Des exemples pratiques illustrent comment utiliser ces opérateurs pour interroger des données dans une base de données.

Transféré par

nawfalessadki1337
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues49 pages

SQL Part1

L'algèbre relationnelle est un langage formel utilisé pour manipuler des relations, tandis que SQL est un langage de programmation pour gérer des bases de données relationnelles. Le document présente divers opérateurs de l'algèbre relationnelle, tels que la projection, la sélection, l'union, l'intersection, la différence et le produit cartésien, ainsi que leurs équivalents en SQL. Des exemples pratiques illustrent comment utiliser ces opérateurs pour interroger des données dans une base de données.

Transféré par

nawfalessadki1337
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algèbre relationnel et langage SQL

Prof : A.CHAFIK

CPGE TETOUAN
MPSI-TSI
[email protected]

18 mars 2025
Introduction Projection Sélection Opérations ensemblistes Jointure

L’algèbre relationnelle est un langage formel,abstrait, et mathématique que


l’on peut appliquer à des relations, et dont le résultat est une relation.

1/30
Introduction Projection Sélection Opérations ensemblistes Jointure

L’algèbre relationnelle est un langage formel,abstrait, et mathématique que


l’on peut appliquer à des relations, et dont le résultat est une relation.

SQL (Structured Query Language) est un langage de programmation utilisé


pour gérer et manipuler des bases de données relationnelles

1/30
Introduction Projection Sélection Opérations ensemblistes Jointure

L’algèbre relationnelle possède plusieurs opérateurs :


certains sont ensemblistes (selon la théorie des ensembles)
d’autres sont relationnels (spécifiques à l’algèbre relationnelle)
On peut aussi classer les opérateurs selon qu’ils s’appliquent à une ou à plu-
sieurs relations (tables).

2/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Le langage SQL permet d’interroger une base de données à l’aide de la com-


mande SELECT.
Cette commande permet de :
récupérer certaines colonnes (SELECT)
de certaines tables (FROM)
récupérer certaines lignes (WHERE)
regrouper certaines lignes (GROUP BY)
filtrer après le regroupement (HAVING)
trier les résultats (ORDER BY)
limiter le nombre d’enregistrements retournés (LIMIT)

3/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Schéma relationnel exemple

4/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Projection
La projection sur une relation (table) R génère une relation T regroupant exclu-
sivement toutes les occurrences de la relation R réduites aux attributs R1 , ..., R P ,
en supprimant les doublons.

Notation

T = Π R1 ,...,RP ( R) = {ligne[ R1 , ..., R P ]|ligne ∈ R}


avec R1 , ..., R P sont des attributs (colonnes) de R.

5/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Requête SQL :
SELECT R1 , ..., R p FROM R
ou bien
SELECT DISTINCT R1 , ..., R p FROM R
Le mot clé DISTINCT permet de supprimer les doublons.

6/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Projection

Projection

Exemple : Noms et villes de tous les clients ?

Πnom , adresse (Client)

7/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Projection

Projection

Exemple : Noms et villes de tous les clients ?

Πnom , adresse (Client)


SELECT DISTINCT nom , adresse From Client

7/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Projection

Projection

Exemple : Noms et villes de tous les clients ?

Πnom , adresse (Client)


SELECT DISTINCT nom , adresse From Client

Relation résultante
Nom Adresse
Durand Nice
Fabre Paris
Prosper Paris
Antonin Marseille

7/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Projection

Projection

Exemple : Afficher toutes les informations des clients ?

Client
SELECT * From Client

8/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Sélection
La sélection sur une relation R définit une relation T de même schéma qui ne
contient que les tuples (lignes) de R qui satisfont à la condition (ou prédicat)
spécifiée.

T = σcondition ( R) = {ligne ∈ R| ligne satis f ait condition}

9/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

La condition (prédicat) est une expression logique faisant intervenir :


les colonnes de la table (attributs)
des constantes
les opérateurs de comparaison =, ̸= , <, >, ≤, ≥
les opérateurs logique ET (∧), OU (∨), NON (¬) pour faire la
combinaison de plusieurs conditions.

10/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Sélection

Exemple : Quels sont les clients qui habitent à Paris ?

11/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Sélection

Exemple : Quels sont les clients qui habitent à Paris ?

σadresse = Paris (Client)

11/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Sélection

Exemple : Quels sont les clients qui habitent à Paris ?

σadresse = Paris (Client)

Relation résultante : même schéma que la table Client


Numéro Nom Adresse Téléphone
106 Fabre Paris
110 Prosper Paris

11/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Requête Sélection en SQL


SELECT R1 , ..., R p FROM R WHERE conditions

12/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Requête Sélection en SQL


SELECT R1 , ..., R p FROM R WHERE conditions

La condition, en SQL, peut contenir les comparateurs :


= ou ! = (ou bien <>)
>, <, ≥, ≤
AND, OR, NOT
LIKE ’modèle’
IN (valeur1 ,. . . , valeur N )
BETWEEN . . . AND . . .
IS NULL, IS NOT NULL

12/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Sélection

Exemple : Quels sont les clients qui habitent à Paris ?


σadresse = Paris (Client)

13/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Sélection

Exemple : Quels sont les clients qui habitent à Paris ?


σadresse = Paris (Client)
SELECT * FROM Client WHERE adresse= ’Paris’ ;

13/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Exercice

1 Afficher les client qui habitent à Paris ou Nice

14/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Exercice

1 Afficher les client qui habitent à Paris ou Nice


2 Afficher les ventes du client n°120 du 20 oct 2004

14/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Exercice

1 Afficher les client qui habitent à Paris ou Nice


2 Afficher les ventes du client n°120 du 20 oct 2004
3 Afficher les clients qui n’habitent pas à Nice.

14/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Exercice

1 Afficher les client qui habitent à Paris ou Nice


2 Afficher les ventes du client n°120 du 20 oct 2004
3 Afficher les clients qui n’habitent pas à Nice.
4 Afficher en SQL les clients dont le numéro de téléphone commence par
’0661’ et dont l’adresse est indéterminée

14/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Sélection

Exercice

1 Afficher les client qui habitent à Paris ou Nice


2 Afficher les ventes du client n°120 du 20 oct 2004
3 Afficher les clients qui n’habitent pas à Nice.
4 Afficher en SQL les clients dont le numéro de téléphone commence par
’0661’ et dont l’adresse est indéterminée
5 Afficher les clients dont le deuxième caractère du nom est un z

14/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Union

Union

Opération binaire ensembliste commutative.


Notation : R1 ∪ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs

15/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Union

Union

Opération binaire ensembliste commutative.


Notation : R1 ∪ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
Résultats génère une relation regroupant exclusivement toutes les
occurrences de la relation R1 et celles de le relation R2

15/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Union

Union :

16/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Union :
Requête SQL :
SELECT . . . FROM . . . WHERE . . .
UNION | UNION ALL
SELECT . . . FROM . . . WHERE . . .
UNION ALL permet de garder les répétitions lors de calcul de la réunion.

17/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Exemple :
Imaginons une entreprise qui possède deux magasins et une table de clients
pour chacun :
magasin1_client (idClient, nom, prénom, adresse, tel)
magasin2_client (idClient, nom, prénom, adresse, tel)

Afficher les informations sur tous les clients de l’entreprise

18/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Exemple :
Imaginons une entreprise qui possède deux magasins et une table de clients
pour chacun :
magasin1_client (idClient, nom, prénom, adresse, tel)
magasin2_client (idClient, nom, prénom, adresse, tel)

Afficher les informations sur tous les clients de l’entreprise


SELECT * FROM magasin1_client
UNION
SELECT * FROM magasin2_client

18/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Intersection

Intersection

Opération binaire ensembliste commutative.


Notation : R1 ∩ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs

19/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Intersection

Intersection

Opération binaire ensembliste commutative.


Notation : R1 ∩ R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
Résultats génère une relation regroupant exclusivement toutes les
occurrences qui existe à la fois dans la relation R1 et dans la relation R2

19/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Intersection

Intersection :

20/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Intersection :
Requête SQL :
SELECT . . . FROM . . . WHERE . . .
INTERSECT
SELECT . . . FROM . . . WHERE . . .

21/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Différence

Différence

Opération binaire ensembliste commutative.


Notation : R1 − R2
Contraintes R1 et R2 doivent avoir les mêmes attributs

22/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Différence

Différence

Opération binaire ensembliste commutative.


Notation : R1 − R2
Contraintes R1 et R2 doivent avoir les mêmes attributs
Résultats génère une relation regroupant exclusivement toutes les
occurrences de la relation R1 et qui n’existe pas dans le relation R2

22/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Différence :
Requête SQL :
SELECT . . . FROM . . . WHERE . . .
EXCEPT
SELECT . . . FROM . . . WHERE . . .
Dans certains systèmes de gestion de base de données (SGBD) on trouve l’opé-
rateur MINUS au lieu d’EXCEPT.

23/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Exemple :
Soit les relations (tables) :
Eleves (idEleve , Nom, Prenom, Ville, Tel, NoteBac, dateNaissance,
classe)
Emprunter (#idEleve, #idLivre, date, duree)

En SQL et en Algèbre relationnel, afficher idEleve des élèves qui n’ont jamais
empruntés des livres

24/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Exemple :
Soit les relations (tables) :
Eleves (idEleve , Nom, Prenom, Ville, Tel, NoteBac, dateNaissance,
classe)
Emprunter (#idEleve, #idLivre, date, duree)

En SQL et en Algèbre relationnel, afficher idEleve des élèves qui n’ont jamais
empruntés des livres
SELECT idEleve FROM Eleves
EXCEPT
SELECT idEleve FROM Emprunter

24/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Produit cartésien

Produit cartésien

Opération binaire ensembliste commutative.


Notation : R1 × R2

25/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Produit cartésien

Produit cartésien

Opération binaire ensembliste commutative.


Notation : R1 × R2
Résultats génère est une nouvelle relation qui a tous les attributs de R1
et ceux de R2 regroupant exclusivement toutes les combinaisons
possible des occurrences des relation R1 et R2 .

25/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Produit cartésien :
Requête SQL :
SELECT Table1.c1, Table1.c2, ...,
Table2.c1, Table2.c2, ..., Table2.cm
FROM Table1 , Table2

26/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Exercice : Décrivez chaque relation et donnez son équivalent en SQL

R1 = σadresse = Paris (Client)

R2 = ΠNom ( R1)

R3 = σmarque = BMW ( Produit)

R4 = R3 × R2

27/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Jointure

Jointure

Opération binaire commutative.


Notation : T = R ▷◁ S
R1.Ci = R2.Cj

Résultat La jointure de deux tables R et S selon une condition P est la


table T contenant l’ensemble des lignes du produit cartésien R x S
satisfaisant la condition P.

28/30
Introduction Projection Sélection Opérations ensemblistes Jointure

Jointure :

Requête SQL :
SELECT * FROM R JOIN S ON R.colonne1= S.colonne2 ;

29/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Jointure

Exercice

1 Afficher les noms des client avec les dates de leurs achats

30/30
Introduction Projection Sélection Opérations ensemblistes Jointure

opérateur : Jointure

Exercice

1 Afficher les noms des client avec les dates de leurs achats
2 Afficher pour le client numéro 125, le numéro de de vente et la marque
des produits achetés.

30/30

Vous aimerez peut-être aussi