Requêtes Imbriquées
L'administration de l'école est satisfaite de nos récentes réalisations et souhaite aller de l'avant.
Alors qu'ils commencent leurs vacances d'été, nous avons l'occasion d'explorer de nouvelles méthodes et d'améliorer nos compétences en SQL.
Notre attention portera sur les requêtes imbriquées, un concept clé en SQL.
Examinons un exemple issu de la base de données de notre entreprise. À mesure que l'entreprise se développe, nous avons ajouté une nouvelle table department
. Cela modifie le fonctionnement de notre base de données.
Observons la structure de la nouvelle table pour comprendre son rôle dans notre 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, se trouvent des informations sur le département auquel chaque employé appartient.
Prenons un exemple où nous utilisons des requêtes imbriquées pour récupérer les employés travaillant dans des départements dont le budget est inférieur ou égal à 500 000 $ :
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Utilisation d'une clause WHERE
pour spécifier que le nom du département doit être présent dans la table récupérée par la requête interne.
Décomposition de cette requête en deux parties distinctes pour comprendre son fonctionnement. Premièrement, récupération des noms des départements dont le budget est inférieur ou égal à 500 000 $ (notre requête interne) :
123SELECT name FROM department WHERE budget <= 500000
Maintenant, en tenant compte du résultat obtenu, rédigeons la seconde requête pour extraire des informations sur les employés de ces départements :
12345SELECT * 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 :
-
La requête interne récupère les
names
des départements nécessaires ; -
La clause
WHERE
vérifie si ces départements sont présents dans la table issue de la requête interne ; -
On obtient le 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 :
-
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
=
,>
,<
,>=
,<=
,<>
; -
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 ;
-
Optimisation : les requêtes imbriquées peuvent être lentes, surtout si elles sont exécutées pour chaque ligne de la requête principale ;
-
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 ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 4
Requêtes Imbriquées
Glissez pour afficher le menu
L'administration de l'école est satisfaite de nos récentes réalisations et souhaite aller de l'avant.
Alors qu'ils commencent leurs vacances d'été, nous avons l'occasion d'explorer de nouvelles méthodes et d'améliorer nos compétences en SQL.
Notre attention portera sur les requêtes imbriquées, un concept clé en SQL.
Examinons un exemple issu de la base de données de notre entreprise. À mesure que l'entreprise se développe, nous avons ajouté une nouvelle table department
. Cela modifie le fonctionnement de notre base de données.
Observons la structure de la nouvelle table pour comprendre son rôle dans notre 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, se trouvent des informations sur le département auquel chaque employé appartient.
Prenons un exemple où nous utilisons des requêtes imbriquées pour récupérer les employés travaillant dans des départements dont le budget est inférieur ou égal à 500 000 $ :
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Utilisation d'une clause WHERE
pour spécifier que le nom du département doit être présent dans la table récupérée par la requête interne.
Décomposition de cette requête en deux parties distinctes pour comprendre son fonctionnement. Premièrement, récupération des noms des départements dont le budget est inférieur ou égal à 500 000 $ (notre requête interne) :
123SELECT name FROM department WHERE budget <= 500000
Maintenant, en tenant compte du résultat obtenu, rédigeons la seconde requête pour extraire des informations sur les employés de ces départements :
12345SELECT * 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 :
-
La requête interne récupère les
names
des départements nécessaires ; -
La clause
WHERE
vérifie si ces départements sont présents dans la table issue de la requête interne ; -
On obtient le 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 :
-
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
=
,>
,<
,>=
,<=
,<>
; -
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 ;
-
Optimisation : les requêtes imbriquées peuvent être lentes, surtout si elles sont exécutées pour chaque ligne de la requête principale ;
-
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 ?
Merci pour vos commentaires !