Comment Ca Marche l'informatique ?
Accueil
Forum
Aide
bordure
Page d'accueil
Ajouter aux favoris
Signalez une erreur
Ecrire à Jean-Francois Pillou
Introduction
LMD
Sélection de données
Projections
Restrictions
Tri et regroupements
Jointures
Sous-requêtes
Opérations ensemblistes
Modification de tuples
LDD
Création de table
Contraintes d'intégrité
Création de vues
Création d'un index
Modification de la table
LCD
Gestion d'utilisateurs
Accorder des droits
Retirer des droits
Version 2.0.3
SQL - Les sous-requêtes Page précédente Page suivante Retour à la page d'accueil

Expression des sous-requêtes

Effectuer une sous-requête consiste à effectuer une requête à l'intérieur d'une autre, ou en d'autres termes d'utiliser une requête afin d'en réaliser une autre (on entend parfois le terme de requêtes en cascade).

Une sous-requête doit être placée à la suite d'une clause WHERE ou HAVING, et doit remplacer une constante ou un groupe de constantes qui permettraient en temps normal d'exprimer la qualification.

  • lorsque la sous-requête remplace une constante utilisée avec des opérateurs classiques, elle doit obligatoirement renvoyer une seule réponse (une table d'une ligne et une colonne). Par exemple:
    SELECT ---- FROM ----
    
    WHERE ---- < (SELECT ---- FROM ----)
  • lorsque la sous-requête remplace une constante utilisée dans une expression mettant en jeu les opérateurs IN, EXISTS, ALL ou ANY, elle doit obligatoirement renvoyer une seule ligne.
    SELECT ---- FROM ----
    
    WHERE ---- IN (SELECT ---- FROM ----)

Soit la table suivante:

Table Occaz
Marque Modele Serie Numero Compteur
Renault 18 RL 4698 SJ 45 123450
Renault Kangoo RL 4568 HD 16 56000
Renault Kangoo RL 6576 VE 38 12000
Peugeot 106 KID 7845 ZS 83 75600
Peugeot 309 chorus 7647 ABY 82 189500
Fiat Punto GTI 8941 UD 61 80232
Audi A4 Quattro 7846 AZS 75 21350

  • La sélection des voitures dont le compteur est inférieur à la moyenne se fait par l'instruction:
    SELECT * FROM OCCAZ
    
    WHERE Compteur < (SELECT AVG(Compteur) FROM OCCAZ)

    Résultat
    Marque Modele Serie Numero Compteur
    Renault Kangoo RL 4568 HD 16 56000
    Renault Kangoo RL 6576 VE 38 12000
    Peugeot 106 KID 7845 ZS 83 75600
    Audi A4 Quattro 7846 AZS 75 21350


Page précédente Page suivante

Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.