Comment mettre à jour une déclaration avec une sous-requête
SQL ou structured query language, est le langage standard utilisé pour gérer les données dans les bases de données relationnelles. La plupart de bases de données contiennent plusieurs tables, et la relation entre eux est référencée à l’aide d’un bon champ ou la clé. Répondre à des questions d’affaires à l’aide de données provenant de différentes tables exige que les données de chaque table se fondre dans l’instruction SQL, souvent en utilisant une sous-requête. Sous-requêtes peuvent être utilisés avec la plupart déclarations de données SQL, tels que select, mise à jour et supprimer des déclarations.
Difficulté : modérée
Instructions
Vous aurez besoin de choses
- Une base de données relationnelle (MySQL, Oracle, Sybase, SQL Server)
- Un utilitaire qui exécute des requêtes SQL
- Ouvrez un utilitaire de ligne de commande qui exécute les instructions SQL. Supposons que deux tables de la base de données dans une base de données. La première table est nommée employee_table et possède les trois champs : employee_id, first_name et du salaire. La deuxième table est nommée employee_phone et possède les trois champs : employee_id, phone_number et phone_type.
- Utilisez une instruction select pour sélectionner tous les enregistrements de l’employee_table et l’ajouter (somme) les valeurs dans le champ de salaire. Cette instruction select est la requête externe.
SELECT sum(salary) from employee_table
- Insérez une sous-requête dans l’instruction select qui sélectionne tous les ID d’employé de la table d’employee_phone où un enregistrement a une valeur de champ phone_type « M ». Il s’agit de la sous-requête, ou la requête interne. Les requêtes internes et externes sont fusionnés à l’aide de l’employee_id de terrain commun.
SELECT sum(salary) from employee_table où employee_id
en (select employee_id from employee_phone où phone_type = « M »)
- Ouvrez un utilitaire de ligne de commande qui exécute les instructions SQL contre les employee_table et les tables d’employee_phone.
- Utilisez une instruction update pour accéder aux données du employee_table et de définir les valeurs stockées dans le champ de salaire de 500,00. Cette déclaration est la requête externe.
mise à jour de salaire set employee_table = 500,00
- Insérez une sous-requête dans l’instruction update qui sélectionne tous les salaires dans la table d’employee_phone où un enregistrement a une valeur de champ phone_type « M ». Il s’agit de la sous-requête, ou la requête interne. Les requêtes internes et externes sont fusionnés à l’aide de l’employee_id de terrain commun.
mise à jour de salaire set employee_table = 500,00 où employee_id en (select employee_id from employee_phone où phone_type = « M »)
- Ouvrez un utilitaire de ligne de commande qui permet l’exécution d’instructions SQL contre les employee_table et les tables d’employee_phone.
- Utilisez une instruction delete pour supprimer tous les enregistrements de l’employee_table. Cette requête est la requête externe. N’exécutez pas cette déclaration avant d’ajouter la requête interne car il supprimera toutes les données dans la table employee_table.
Supprimez du employee_table
- Insérez une sous-requête dans l’instruction delete qui sélectionne tous les salaires dans la table d’employee_phone où un enregistrement a une valeur de champ phone_type « w ». Il s’agit de la sous-requête, ou la requête interne. Les requêtes internes et externes sont fusionnés à l’aide de l’employee_id de terrain commun.
Supprimez d’employee_table où employee_id en (select employee_id from employee_phone où phone_type = « W »)
Comment mettre à jour une instruction SELECT utilisant une sous-requête
Comment mettre à jour une déclaration de mise à jour à l’aide d’une sous-requête
Comment mettre à jour une instruction DELETE à l’aide d’une sous-requête
Conseils & avertissements
Sous-requêtes peuvent être imbriqués dans d’autres sous-requêtes, jusqu’à un certain nombre de niveaux.
Sous-requêtes doivent retourner une valeur de colonne spécifique.
Sous-requêtes peuvent être utilisés avec d’autres types d’instructions SQL et clauses, telles qu’insert, où, ayant ou non.
Plusieurs sous-requêtes peuvent être réécrite comme jointures, qui peuvent effectuer mieux dans des situations précises.
Bien que la plupart de bases de données utilise une syntaxe similaire pour les sous-requêtes, veillez à consulter le Manuel de référence pour la base de données spécifique que vous utilisez.
Auteur: Bernadette Leroy
Catégorie: Logiciel de base de données
Vues: 20 vues