Maison >base de données >tutoriel mysql >Explication détaillée du rôle des vues MySQL (2) - filtrage des données, calcul des champs et mise à jour des vues
Utilisez des vues pour filtrer les données indésirables
Les vues sont également utiles pour appliquer des clauses WHERE ordinaires. Par exemple, vous pouvez définir une vue de liste de courrier électronique client qui filtre les clients sans adresse e-mail. A cet effet, la déclaration suivante peut être utilisée :
Entrée :
create view customeremaillist as select cust_id,cust_name,cust_email from customers where cust_email is not null;
Analyse : Évidemment, lors de l'envoi d'un e-mail à une liste de diffusion, vous devez exclure les utilisateurs sans adresse e-mail . La clause WHERE filtre ici les lignes avec des valeurs NULL dans la colonne cust_email afin qu'elles ne soient pas récupérées.
Désormais, la vue customeremaillist peut être utilisée comme n'importe quelle autre table.
Entrée :
select * fromcustomeremaillist;
Sortie :
Clause WHERE et clause WHERE si a est utilisée lors de la récupération des données de la vue WHERE clause, les deux ensembles de clauses (l’une dans la vue et l’autre passée à la vue) sont automatiquement combinées.
Utiliser des vues avec des champs calculés
Les vues sont particulièrement utiles pour simplifier l'utilisation des champs calculés. Vous trouverez ci-dessous une instruction SELECT introduite au chapitre 10. Il récupère les articles dans un ordre spécifique, calculant le prix total de chaque article :
Entrée :
select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems where order_num = 20005;
Sortie :
Pour le convertir en vue, procédez comme suit :
Saisie :
create view orderitemsexpanded as select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems;
Pour récupérer les détails de la commande 20005 (la sortie ci-dessus), procédez comme suit :
Entrée :
select * from orderitemsexpanded where order_num = 20005;
Sortie :
Comme vous pouvez le constater, les vues sont très faciles à créer et à utiliser. Utilisées correctement, les vues peuvent grandement simplifier le traitement de données complexes.
Mise à jour des vues
Toutes les vues jusqu'à présent sont utilisées avec les instructions SELECT. Cependant, les données de la vue peuvent-elles être mises à jour ? La réponse dépend de la situation.
En général, les vues peuvent être mises à jour (c'est-à-dire que INSERT , UPDATE et DELETE peuvent être utilisées dessus). La mise à jour d'une vue met à jour sa table de base (rappelez-vous que la vue elle-même ne contient aucune donnée). Si vous ajoutez ou supprimez des lignes à une vue, vous ajoutez ou supprimez en réalité des lignes à sa table de base.
Cependant, toutes les vues ne sont pas modifiables. Fondamentalement, on peut dire que si MySQL ne peut pas déterminer correctement les données de base en cours de mise à jour, les mises à jour (y compris les insertions et les suppressions) ne sont pas autorisées. Cela signifie en fait que s'il y a les opérations suivantes dans la définition de la vue, la vue ne peut pas être mise à jour :
1. Regroupement (en utilisant GROUP BY et HAVING) ; >
3. Sous-requête ; 4. Union ; 5. > 6.DISTINCT;7. Colonne Exporter (calculer). En d'autres termes, les vues de la plupart des exemples de ce chapitre ne peuvent pas être mises à jour. Cela peut sembler une limitation sérieuse, mais ce n'est pas le cas, puisque les vues sont principalement utilisées pour la récupération de données. Changements possibles Les limitations listées ci-dessus sont correctes à partir de MySQL 5. Cependant, les futures versions de MySQL lèveront probablement certaines restrictions. Utiliser des vues pour la récupération En général, vous devez utiliser des vues pour la récupération (instructions SELECT) plutôt que pour les mises à jour (INSERT, UPDATE et DELETE).Résumé :
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!