Maison  >  Article  >  base de données  >  Explication détaillée du rôle des vues MySQL (1) - simplification des connexions complexes et formatage des données récupérées

Explication détaillée du rôle des vues MySQL (1) - simplification des connexions complexes et formatage des données récupérées

巴扎黑
巴扎黑original
2017-05-17 16:37:453153parcourir

Utilisez des vues pour simplifier les jointures complexes

L'une des applications les plus courantes des vues consiste à masquer le SQL complexe, qui implique généralement des jointures. Veuillez regarder l'exemple suivant :

Entrée :

create view productcustomers as select cust_name,cust_contact,prod_id from customers,orders,orderitems where customers.cust_id = orders.cust_id and orderitems.order_num = orders.order_num;

Analyse : Cette instruction crée une vue nommée productcustomers, qui joint trois tables pour renvoyer les articles qui ont été commandés A. liste de tous les clients pour n’importe quel produit. Si vous exécutez SELECT * FROM productcustomers, vous listerez les clients qui ont commandé un produit.

Pour récupérer les clients ayant commandé le produit TNT2, procédez comme suit :

Entrée :

select cust_name,cust_contact from productstomers where prod_id = 'TNT2';

Sortie :

Explication détaillée du rôle des vues MySQL (1) - simplification des connexions complexes et formatage des données récupérées

Analyse : cette instruction récupère des données spécifiques de la vue via la clause WHERE. Au fur et à mesure que MySQL traite cette requête, il ajoute la clause WHERE spécifiée aux clauses WHERE existantes dans la requête de vue afin que les données soient correctement filtrées.

On peut constater que les vues simplifient grandement l'utilisation d'instructions SQL complexes. Les vues vous permettent d'écrire du SQL de base une fois, puis de l'utiliser autant de fois que nécessaire.

Créer des vues réutilisables C'est une bonne idée de créer des vues qui ne sont pas limitées à des données spécifiques. Par exemple, la vue créée ci-dessus renvoie les clients qui fabriquent tous les produits et pas seulement les clients qui produisent du TNT2. L'extension de la portée d'une vue la rend non seulement réutilisable, mais encore plus utile. Cela élimine le besoin de créer et de gérer plusieurs vues similaires.

Utiliser des vues pour reformater les données récupérées

Comme mentionné ci-dessus, une autre utilisation courante des vues consiste à reformater les données récupérées. L'instruction SELECT suivante renvoie le nom et l'emplacement du fournisseur dans une seule colonne calculée combinée :

Entrée :

select concat(rtrim(vend_name),'(',rtrim(vend_country), ')') as vend_title from vendors order by vend_name;

Sortie :

Explication détaillée du rôle des vues MySQL (1) - simplification des connexions complexes et formatage des données récupérées

Supposons maintenant que vous ayez fréquemment besoin de résultats dans ce format. Au lieu d'effectuer une jointure à chaque fois que vous en avez besoin, créez une vue et utilisez-la à chaque fois que vous en avez besoin. Pour convertir cette instruction en vue, procédez comme suit :

Entrée :

create view vendorlocation as select concat(rtrim(vend_name),'(',rtrim(vend_country), ')') as vend_title from vendors order by vend_name;

Analyse : Cette instruction crée une vue en utilisant la même requête que l'instruction SELECT précédente. Pour récupérer les données permettant de créer toutes les étiquettes de publipostage, procédez comme suit :

Entrée :

select * from vendorlocations;

Sortie :

Explication détaillée du rôle des vues MySQL (1) - simplification des connexions complexes et formatage des données récupérées

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn