0% ont trouvé ce document utile (0 vote)
22 vues10 pages

Language SQL - Partie3

Le document présente les sous-requêtes en SQL, expliquant leur utilisation pour effectuer des calculs intermédiaires ou récupérer des valeurs dans des requêtes principales. Il couvre différents types de sous-requêtes, y compris les sous-requêtes scalaires, avec plusieurs résultats, corrélées, dans la clause FROM, et avec EXISTS. Des exemples pratiques illustrent chaque type de sous-requête dans le contexte des bases de données relationnelles.

Transféré par

betrayermoon332
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)
22 vues10 pages

Language SQL - Partie3

Le document présente les sous-requêtes en SQL, expliquant leur utilisation pour effectuer des calculs intermédiaires ou récupérer des valeurs dans des requêtes principales. Il couvre différents types de sous-requêtes, y compris les sous-requêtes scalaires, avec plusieurs résultats, corrélées, dans la clause FROM, et avec EXISTS. Des exemples pratiques illustrent chaque type de sous-requête dans le contexte des bases de données relationnelles.

Transféré par

betrayermoon332
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

Module : ALGÈBRE RELATIONNELLE

&
LANGAGE SQL
(Bases de Données Relationnelles)

Le langage SQL - Partie 3 : Les sous-requêtes


Pr. Salma MOULINE
TC MIP-Informatique — S4 Département d’Informatique
2024/2025 Laboratoire LRIT
Introduction aux Sous-requêtes en MySQL

• Une sous-requête est une requête SQL incluse à l'intérieur d'une autre requête.

• Elle permet d'effectuer des calculs intermédiaires ou de récupérer des valeurs pour
la requête principale.

• Utilisation dans les instructions SELECT, INSERT, UPDATE ou DELETE.

Salma MOULINE —- 2024/2025


Sous-requête scalaire (une seule valeur)

• Une sous-requête qui retourne une seule valeur (une ligne, une colonne).

• Exemple : Employé (id, nom, salaire, département)

SELECT nom, salaire FROM employe

WHERE salaire > (SELECT AVG(salaire) FROM employe);

Utilise la sous-requête pour calculer le salaire moyen.

Résultat : le nom et le salaire des employés dont le salaire est strictement


supérieur au salaire moyen.
Salma MOULINE —- 2024/2025
Sous-requête avec plusieurs résultats

• Utilisée avec IN, ANY, ou ALL.

• Exemple avec IN : Employé (id, nom, salaire, dep-id)


Département (id, nom)

SELECT nom FROM employe


WHERE dep_id IN
(SELECT id FROM departement WHERE nom IN ('IT', 'Marketing'));

Sélectionne les nom des employés appartenant aux départements ‘IT’ et ‘Marketing’.

Salma MOULINE —- 2024/2025


Sous-requête avec plusieurs résultats

• Exemple avec ALL : Employé (id, nom, salaire, dep-id)


Département (id, nom)

SELECT nom FROM employe


WHERE salaire > ALL
(SELECT salaire FROM Employé WHERE dept-d = 10 );

Sélectionne les noms des employés dont le salaire est supérieur à tous les salaires
des employés du département 10.

Salma MOULINE —- 2024/2025


Sous-requête avec plusieurs résultats

• Exemple avec ANY : Employé (id, nom, salaire, dep-id)


Département (id, nom)

SELECT nom FROM employe


WHERE salaire > ANY
(SELECT salaire FROM Employé WHERE dept-d = 10 );

Sélectionne les noms des employés dont le salaire est supérieur à au moins un des
salaires des employés du département 10.

Salma MOULINE —- 2024/2025


Sous-requête corrélée

• Une sous-requête corrélée est une requête qui fait référence à une colonne de la requête
principale.

• Exemple : Employé (id, nom, salaire, dep-id)


Département (id, nom)
SELECT nom FROM employe E1
WHERE salaire > (SELECT AVG(salaire) FROM employe E2
WHERE E1dep_id = E2.dep_id);

➡ Donne le nom des employés dont le salaire est supérieur au salaire moyen des
employés du même département.
Salma MOULINE —- 2024/2025
Sous-requête dans la clause FROM

• Utilisation d'une sous-requête comme table dérivée dans la clause FROM.

• Exemple : Employé (id, nom, salaire, département)


Département (id, nom)

SELECT Dep_sal_moy.département, Dep_sal_moy.moyenne


FROM ( SELECT département, AVG(salaire) AS moyenne
FROM Employés
GROUP BY département
) AS Dep_sal_moy
WHERE moyenne > 10 000;

➡ Af che le nom et le salaire moyen, des départements dont le salaire moyen est supérieur à 10 000

Salma MOULINE —- 2024/2025


fi
Sous-requête avec EXISTS

• EXISTS véri e si une sous-requête renvoie des lignes.

• Exemple : Employé (id, nom, salaire, département)


Projet (id, nom, chef_prj)

SELECT nom FROM employe E

WHERE EXISTS (SELECT * FROM projet WHERE chef_prj = [Link]);

➡Donne le nom des employés qui sont chefs de projet.

On peut utiliser le NOT EXISTS Utilisé pour exprimer la division


Salma MOULINE —- 2024/2025
fi
Sous-requête avec ALL

• Exemple : Employé (id, nom, salaire, département)

SELECT nom FROM employe E


WHERE département <> ‘IT’ AND
salaire > ALL (SELECT salaire FROM employé
WHERE département = ‘IT’);

➡Donne le nom des employés qui ne font pas partie du département ‘IT’ mais dont le salaire
est supérieur à tout les salaires du département IT.

Utilisé pour exprimer la division

Salma MOULINE —- 2024/2025

Vous aimerez peut-être aussi