Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Requêtes Imbriquées | Sous-requêtes Imbriquées
SQL Intermédiaire

Requêtes Imbriquées

Glissez pour afficher le menu

L'administration de l'école est ravie de vos récentes réalisations et souhaite aller de l'avant.

Alors qu'ils entament leurs vacances d'été, vous avez l'opportunité d'explorer de nouvelles méthodes et d'améliorer vos compétences en SQL.

L'accent sera mis sur les requêtes imbriquées, un concept clé en SQL.

Note
Définition

Les requêtes imbriquées, ou sous-requêtes imbriquées, sont des éléments essentiels du SQL dans lesquels une requête se trouve à l'intérieur d'une autre requête. Ces constructions permettent diverses opérations telles que le filtrage, le calcul et la récupération de données, nécessitant souvent l'intégration de sous-requêtes.

Examinez un exemple issu de la base de données de l'entreprise. À mesure que l'entreprise se développe, une nouvelle table department a été ajoutée. Cela modifie le fonctionnement de notre base de données.

Consultez la structure de la nouvelle table pour comprendre son rôle dans la base de données :

La nouvelle table contient les départements, leurs types et leurs budgets. Et dans la table employee, comme vous vous en souvenez peut-être, il y a des informations sur le département auquel chaque employé appartient.

Considérer un exemple où des requêtes imbriquées sont utilisées pour extraire les employés qui travaillent dans des départements ayant un budget de 500 000 $ ou moins :

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )

Une clause WHERE est utilisée pour spécifier que le nom du département doit être présent dans la table récupérée avec la requête interne.

Décomposer cette requête en deux requêtes distinctes pour comprendre son fonctionnement. Tout d'abord, récupérer les noms des départements dont le budget est inférieur ou égal à 500 000 $ (requête interne) :

123
SELECT name FROM department WHERE budget <= 500000

Maintenant, en tenant compte du résultat obtenu, écrire la seconde requête pour récupérer des informations sur les employés de ces départements :

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )

Le résultat de cette requête sera identique à celui de la première requête.

Voici une explication étape par étape :

  1. La requête interne récupère les names des départements nécessaires ;

  2. La clause WHERE vérifie si ces départements sont dans la table issue de la requête interne ;

  3. Obtention du résultat souhaité.

Voici la syntaxe de base pour une requête interne :

SELECT columns
FROM table_1
WHERE column_name IN (
  SELECT column
  FROM table_2
  other clauses
)

Lors de l'utilisation de requêtes imbriquées, gardez à l'esprit les points importants suivants :

  1. Résultat unique dans la sous-requête : s'assurer que la requête imbriquée retourne une seule colonne. Si elle est utilisée dans une comparaison, elle doit idéalement retourner une seule valeur. Ceci est crucial pour les opérateurs comme =, >, <, >=, <=, <> ;

  2. Types de données : le type de données de la colonne retournée doit correspondre à celui de la colonne à laquelle elle est comparée, afin d'éviter les erreurs ;

  3. Optimisation : les requêtes imbriquées peuvent être lentes, surtout si elles sont exécutées pour chaque ligne de la requête principale ;

  4. Utilisation de l'opérateur IN : les requêtes imbriquées utilisent souvent l'opérateur IN pour vérifier la présence de valeurs dans un sous-ensemble. Il est également possible d'utiliser des opérateurs de comparaison pour des conditions plus complexes.

1. Qu'est-ce qu'une requête imbriquée en SQL ?

2. Quel opérateur SQL est couramment utilisé avec les requêtes imbriquées pour vérifier des valeurs dans un sous-ensemble ?

3. Pourquoi est-il important que le type de données de la colonne renvoyée par une requête imbriquée corresponde à la colonne à laquelle elle est comparée ?

question mark

Qu'est-ce qu'une requête imbriquée en SQL ?

Sélectionnez la réponse correcte

question mark

Quel opérateur SQL est couramment utilisé avec les requêtes imbriquées pour vérifier des valeurs dans un sous-ensemble ?

Sélectionnez la réponse correcte

question mark

Pourquoi est-il important que le type de données de la colonne renvoyée par une requête imbriquée corresponde à la colonne à laquelle elle est comparée ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 2. Chapitre 1
some-alt