Modifier automatiquement des données sélectionnées
Pour ce troisième exemple, nous allons nous intéresser au schéma (là encore très simplifié) d’une application qui permet de vendre des produits en France et au Royaume-Uni, en euro, livre et dollar. Cette application possède une table produit, qui contient le produit (son identifiant) et son prix hors taxe en euro.
Masquer la complexité du schéma
L’équipe de développement doit écrire un moteur de recherche pour une application de commerce électronique. Voici un extrait des tables de la base de données impliquées dans la recherche des produits du site.
Voici quelques exemples pratiques très simples pour illustrer les différents besoins auxquels peuvent répondre les vues. On aura ici, une vue administrateur de base de données. Les objets créés ne seront pas utilisés directement par les utilisateurs mais aux travers d’une application
Restrictions
Lors de la création d’une vue, certaines contraintes doivent être prises en compte :
* Il n’est pas possible de créer un index sur une vue
* La vue ne peut pas contenir de sous-requêtes dans la clause FROM du SELECT.
* Il n’est pas possible d’utiliser de variables dans une vue.
* Les objets (tables et vues) nécessaires à la création de la vue doivent exister avant de la créer.
* Si un objet référencé par la vue est effacé, la vue n’est alors plus accessible.
* Une vue ne peut référencer une table temporaire (TEMPORARY TABLE)
* Il n’est pas possible de créer des vues temporaires.
* Il n’est pas possible d’associer un trigger à une vue.
* La définition d’une vue est « gelée » dans une requête préparée.
Syntaxe d’une vue
CREATE VIEW
La commande MySQL pour créer une vue est assez proche de la syntaxe du standard SQL.
CREATE VIEW nom_de_la_vue AS requête_select