? Oracle est un système commercial de gestion de base de données relationnelle . Comme avec d'autres grands SGBDR , il utilise le Structured Query Language pour base la maintenance , l'administration et la programmation. Le langage SQL permet de créer des requêtes de bases de données sophistiquées de reporting , l'ajout et la modification des informations dans la base de données. Ces requêtes peuvent inclure les sous-requêtes corrélées , dans lequel les données de la sous-requête dépend de la requête principale. Requêtes
Une requête SQL SQL est un énoncé qui examine les données dans la base de données et l'utilise pour produire un rapport ou mettre à jour la base de données . Une des requêtes plus simples est une liste d'enregistrements dans une table de base de données. Il ressemble à l'instruction SQL suivante :
SELECT * FROM clients ;
Cette requête produit une liste non triée de toutes les informations dans la table " clients " , enregistrement par enregistrement. En utilisant le puissant clause WHERE, vous pouvez créer des requêtes sélectives qui évaluent les données et la liste uniquement les enregistrements correspondant aux critères de la clause :
SELECT * FROM clients WHERE state = 'CA' ;
requête répertorie uniquement les clients de la Californie . La clause WHERE peut accueillir des conditions très complexes, y compris les résultats de la corrélation des sous- requêtes, permettant de sélectionner uniquement les données que vous souhaitez .
Sous-requêtes
une sous-requête est une requête dans laquelle la clause WHERE lui-même a sa propre requête. C'est un moyen pratique de combiner des informations provenant de différentes tables de base de données pour produire des résultats plus sophistiqués. La requête suivante génère une liste des seuls les clients qui ont passé commande en 2011 :
SELECT * FROM clients WHERE customer_code IN ( customer_code SELECT FROM commandes WHERE order_date ENTRE '1 /1/2011 ' ET '12 /31 /2011 ');
avis qu'il s'agit d'une requête à l'intérieur d'une requête. L'instruction SELECT à l'intérieur des parenthèses génère une liste de codes de client de la table "ordres " . La requête externe utilise les codes du client pour produire une liste des noms des clients , adresses et autres informations. Il s'agit d'une sous- requête, mais pas de manière coordonnée sous-requête ; . Que la requête externe dépend de l' une intérieure , une sous-requête coordonnée a également une requête interne qui dépend de l' extérieur une
Photos corrélée sous-requêtes
Dans une sous-requête corrélée , chaque requête dépend de l'autre . La déclaration Oracle SQL suivante génère une liste des codes des clients , les noms et les totaux d'achat pour les clients dont les quantités achat tomber en dessous de la moyenne pour tous les clients dans un état . Vous avez alors deux questions interdépendantes , l'une qui répertorie les clients, mais a besoin de la moyenne des ventes permettant de comparer , et l'autre qui calcule la moyenne, mais a besoin de l'Etat. Notez l'utilisation de la table alias "C1" et "C2 ". L' alias "C1" se réfère à la table des clients dans la requête externe , et "C2" est la table du client dans la requête interne .
SELECT customer_code , nom, total_purchases , état FROM clients WHERE c1 total_ achats <( SELECT avg ( total_ achats) à partir clients c2 WHERE c1.state = c2.state );
utilisation
< br >
corrélés sous-requêtes présentons une méthode utile pour sélectionner des informations de tables où vous avez besoin de sous-requêtes conditionnelles en utilisant la clause WHERE, et le critère de la requête interne provient de l' extérieur un. Comme dans l'exemple de sous- requête, la méthode fonctionne bien lorsque la requête interne génère un montant global , comme un moyen , total, minimum ou maximum , contre laquelle votre requête externe compare . Vous pouvez utiliser la corrélation de séries jointes des tables ainsi que des tableaux simples.