? Programmeurs et les administrateurs de bases de données utilisent le Structured Query Language pour créer des bases de données et de faire rapport sur l'information en eux. Une instruction SQL peut contenir des tests conditionnels complexes pour sélectionner des ensembles spécifiques de données des tables dans une base de données . Une sous-requête corrélée dispose de deux essais , l'un imbriqué dans l'autre ; chaque test dépend du résultat de l'autre. SQL
bases de données relationnelles les plus modernes intègrent SQL pour l'ajout et la mise à jour des données, la création de structures et de collecte d'informations. SQL est basé sur des théories sur les données développées dans les années 1970 et continuellement affiné depuis lors . Il se compose d'un ensemble de déclarations, y compris SELECT, INSERT, créer et supprimer , suivie par diverses clauses spécifiant les données gérées et des options telles que le tri et le regroupement . L'usage généralisé des bases de données est dû à la flexibilité et la sophistication de SQL , il permet aux organisations d'analyser les groupes de données complexes à bien des égards
Requêtes et sous-requêtes
Une commande SQL. pour récupérer des données est appelé une requête , généralement , les programmeurs utilisent l'instruction SELECT pour les requêtes , même si bon nombre des règles pour rechercher des données s'applique également pour insérer, supprimer et mettre à jour. Une requête SELECT simple peut afficher le contenu d'un tableau de données , tels que la déclaration suivante:
SELECT * FROM inventaire ;
Cette requête affiche tous les enregistrements dans un tableau appelé «inventaire ». vous faites des résultats d'une requête plus spécifique en ajoutant des tests conditionnels , comme dans cette déclaration:
SELECT * FROM WHERE inventaire warehouse_code = ' chicago5 ';
cette requête montre que les registres d'inventaire d'un entrepôt code, chicago5 .
une sous-requête est une requête dans une autre requête. L'instruction des listes des inventaires suivants pour ces articles depuis des entrepôts à une certaine région :
SELECT * FROM WHERE inventaire warehouse_code IN ( SELECT warehouse_code des entrepôts Where region = ' Midwest ');
Notez que cette requête a deux instructions SELECT , l'un qui affiche les registres d'inventaire , et une autre qui donne la requête principale avec codes d'entrepôt.
corrélée Subquery
une corrélation sous-requête , les deux principaux et subordonnés requêtes extraire des données à partir de la même table. La requête interne exécute une fonction d'agrégation , comme une statistique , et se nourrit de ces informations à la requête externe , qui l'utilise comme base d'une comparaison . Par exemple, cette requête corrélée produit une liste de fiches d'inventaire pour les éléments ayant des prix supérieure à la moyenne d'un entrepôt . La requête externe transmet les informations de l'entrepôt à la requête interne , et la requête interne envoie le prix moyen de retour à la requête externe :
SELECT part_number , prix, warehouse_code de l'inventaire i1 WHERE prix > (SELECT AVG ( prix ) de l'inventaire i2 OÙ warehouse_code.i1 = warehouse_code.i2 ) ; ». i2 "
le tableau des emplois des deux requêtes alias " i1 " et bien qu'ils se réfèrent à la même table, en utilisant des alias permet aux requêtes de la traiter comme deux entités distinctes .
des problèmes de performances
sous-requêtes corrélées , SQL évalue la requête interne une fois pour chaque enregistrement de la requête externe. Comme la taille des tables deviennent plus grandes , le processus prend plus de temps . Si vous trouvez que une sous-requête corrélée prend énormément de temps pour terminer , pensez à utiliser une alternative , telles que le chargement d'une table temporaire avec les résultats intermédiaires , puis le traitement de la table temporaire directement contre la table principale avec un simple sous-requête. Bien que moins élégant , il peut s'avérer nettement plus rapide .