0% ont trouvé ce document utile (0 vote)
31 vues6 pages

A07 Req Imbr

Le document présente une introduction à SQL, incluant la création et la gestion de tables, ainsi que des requêtes de base. Il aborde également les jointures, les fonctions d'agrégation, les regroupements, les opérateurs ensemblistes et les requêtes imbriquées. Un résumé des concepts clés est fourni, illustré par des exemples de requêtes SQL.

Transféré par

Heba Gamal
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)
31 vues6 pages

A07 Req Imbr

Le document présente une introduction à SQL, incluant la création et la gestion de tables, ainsi que des requêtes de base. Il aborde également les jointures, les fonctions d'agrégation, les regroupements, les opérateurs ensemblistes et les requêtes imbriquées. Un résumé des concepts clés est fourni, illustré par des exemples de requêtes SQL.

Transféré par

Heba Gamal
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

Plan

Introduction à SQL
Introduction
Créer, supprimer et remplir une table
Interroger une base de données : SELECT
Les jointures
Fonctions d’agrégation
Regroupements
Les opérateurs ensemblistes
Requêtes imbriquées
Résumé des notions abordées

03 jan 2012 / Rév. 2 - page 95 sur 246

Requêtes imbriquées

◮ Parfois la valeur d’un test doit être calculé comme le résultat


d’une autre requête
◮ Une requêtes imbriquée, ou sous-requête, est une commande
SELECT dans une autre commande

◮ Une sous-requête doit toujours être entre parenthèses


 SELECT ...
requête FROM ...
externe WHERE <expr> <ope> (SELECT ... 
FROM ... requête
WHERE ...) imbriquée

03 jan 2012 / Rév. 2 - page 96 sur 246


Fonctions de sous-requêtes

◮ Le résultat d’une requête imbriquée est une table, i.e. un ensemble


de n-uplets
◮ Les fonctions booléennes ci-dessous prennent en paramètre le
résultat d’une sous-requête
1. <expr> [NOT] IN (<sous-requete>) : vrai si la valeur est
présente dans cette colonne, la sous-requête ne doit comporter qu’une
colonne
2. <expr> <ope> [ANY|ALL] (<sous-requete>) : vrai si une
(ANY) ou toutes les lignes (ALL) de la sous-requête vérifient la
comparaison, la sous-requête ne doit comporter qu’une colonne
3. [NOT] EXISTS (<sous-requete>) : vrai si la sous-requête
retourne au moins une ligne

03 jan 2012 / Rév. 2 - page 97 sur 246

Exemples de requêtes I

1. Liste des acteurs n’ayant pas joué dans Le parrain

Film Acteur Jouer


idFilm titre budget recettes idActeur prenom nom idActeur idFilm role
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...

03 jan 2012 / Rév. 2 - page 98 sur 246


Exemples de requêtes I

1. Liste des acteurs n’ayant pas joué dans Le parrain


SQL SELECT *
FROM Acteur
WHERE idActeur NOT IN (
SELECT idActeur
FROM Jouer NATURAL JOIN Film
WHERE titre=’Le parrain’)

Film Acteur Jouer


idFilm titre budget recettes idActeur prenom nom idActeur idFilm role
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...

03 jan 2012 / Rév. 2 - page 98 sur 246

Exemples de requêtes II

1. Films ayant un budget supérieur à celui du film Les blues brothers

Film Acteur Jouer


idFilm titre budget recettes idActeur prenom nom idActeur idFilm role
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...

03 jan 2012 / Rév. 2 - page 99 sur 246


Exemples de requêtes II

1. Films ayant un budget supérieur à celui du film Les blues brothers


SQL SELECT *
FROM Film
WHERE budget > ANY (
SELECT budget
FROM Film
WHERE titre = "Les blues Brothers")

◮ Puisque la sous-requête retourne une seule valeur, il est possible de


ne mettre que l’opérateur >

Film Acteur Jouer


idFilm titre budget recettes idActeur prenom nom idActeur idFilm role
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...

03 jan 2012 / Rév. 2 - page 99 sur 246

Exemples de requêtes III

1. Acteurs ayant joué dans aucun film

Film Acteur Jouer


idFilm titre budget recettes idActeur prenom nom idActeur idFilm role
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...

03 jan 2012 / Rév. 2 - page 100 sur 246


Exemples de requêtes III

1. Acteurs ayant joué dans aucun film


SQL SELECT *
FROM Acteur
WHERE NOT EXISTS (
SELECT *
FROM Jouer
WHERE Acteur.idActeur = Jouer.idActeur )

◮ Les deux requêtes sont corrélées, la requête imbriquée dépend de la


valeur de idActeur

Film Acteur Jouer


idFilm titre budget recettes idActeur prenom nom idActeur idFilm role
... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ...

03 jan 2012 / Rév. 2 - page 100 sur 246

Plan

Introduction à SQL
Introduction
Créer, supprimer et remplir une table
Interroger une base de données : SELECT
Les jointures
Fonctions d’agrégation
Regroupements
Les opérateurs ensemblistes
Requêtes imbriquées
Résumé des notions abordées

03 jan 2012 / Rév. 2 - page 101 sur 246


Résumé des notions abordées

◮ Créer, supprimer et remplir des tables : CREATE, DROP, INSERT


◮ Requêtes simples : SELECT ... FROM ... WHERE ...
◮ Jointures : NATURAL JOIN, R1 JOIN R2 ON condition,
[LEFT|RIGHT|FULL] OUTER JOIN

◮ Fonctions d’agrégation : COUNT(), AVG(), MAX(), MIN(), SUM()


◮ Regroupements : GROUP BY ... HAVING ...
◮ Opérateurs ensemblistes : UNION, INTERSECT, EXCEPT
◮ Requêtes imbriquées : IN, ANY|ALL, EXISTS, corrélation

03 jan 2012 / Rév. 2 - page 102 sur 246

Vous aimerez peut-être aussi