Formation PUB200 : MySQL, 2018 Vues MySQL

13.2 Créer une vue


Pour créer une vue, vous devez utiliser la syntaxe suivante :

Syntaxe MySQL

CREATE VIEW nom_vue AS SELECT...;

Suggestion : afin de différencier d'un coup d'oeil les vues des tables, vous pouvez leur donner un nom commençant par vue_.

Ex :

MySQL

CREATE VIEW vue_mecaniciensfactures AS

SELECT mecaniciens.id AS mecanicien_id, mecaniciens.prenom, mecaniciens.nomfamille, mecaniciens.embauche,

factures.id AS facture_id, date, lignesfactures.prix, operations.description, lignesfactures.description AS infosupplementaire

FROM factures

INNER JOIN lignesfactures ON facture_id = factures.id

INNER JOIN mecaniciens ON mecanicien_id = mecaniciens.id

INNER JOIN operations ON operation_id = operations.id;

Pour faciliter votre travail

Si une vue est créée avec une erreur dans sa requête SELECT, il est possible de se reprendre mais cela nécessite quelques étapes. C'est pour cette raison qu'il est préférable de :

  • tester la requête SELECT 
  • au besoin, ajuster la requête SELECT
  • lorsque le SELECT nous donne exactement ce que nous cherchons, faire le CREATE VIEW suivi de cette requête.

Éviter la clause ORDER BY dans la défintion d'une vue

Il est possible d'ajouter une clause ORDER BY dans la requête définissant la vue afin que la vue affiche toujours les enregistrement dans un ordre donné. Cependant, une telle clause peut ralentir l'exécution de la requête et peut également causer des problèmes dans certains cas très précis. 

C'est pourquoi il n'est pas recommandé d'utiliser une clause ORDER BY dans la définition de la vue.

Ex :

MySQL

CREATE VIEW vue_mecaniciensfactures AS

SELECT ...

ORDER BY date;

On pourra sans problème utiliser une clause ORDER BY dans une requête qui utilise la vue.

Ex :

MySQL

SELECT ... FROM vue_mecaniciensfactures

WHERE ...

ORDER BY date;

Pour plus d'information

« 13.1.17 CREATE VIEW Syntax ». MySQL. https://dev.mysql.com/doc/refman/5.7/en/create-view.html

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre