MySQL Vues : Comment créer une vue à partir de tableaux
⚡ Résumé intelligent
MySQL Views are virtual tables that store no data of their own and instead present the result of a stored SELECT query. This resource explains how to create, query, join, and drop views, with runnable examples from the myflixdb database.

Que sont les vues dans MySQL?
VUES sont des tables virtuelles qui ne stockent aucune donnée propre mais affichent les données stockées dans d'autres tables. En d’autres termes, les VUES ne sont rien d’autre que des requêtes SQL. Une vue peut contenir la totalité ou quelques lignes d'une table. UN MySQL La vue peut afficher les données d’une ou de plusieurs tables.
MySQL Syntaxe des vues
Examinons maintenant la syntaxe de base utilisée pour créer une vue dans MySQL.
CREATE VIEW `view_name` AS SELECT statement;
OÙ
- "CRÉER UNE VUE `view_name`" raconte MySQL serveur pour créer un objet de vue dans la base de données nommé `view_name`
- "Instruction AS SELECT" sont les instructions SQL à emballer dans le MySQL Vues. Il peut s'agir d'une instruction SELECT pouvant contenir des données d'une ou de plusieurs tables.
Pourquoi utiliser des vues ?
Before building one, it helps to know what a view actually buys you.
Vous souhaiterez peut-être utiliser les vues principalement pour les 3 raisons suivantes
- Ultimately, you will use your SQL knowledge, to create applications, which will use a database for data requirements. It’s recommended that you use VIEWS of the original table structure in your application instead of using the tables themselves. This ensures that when you refactor your DB, your legacy code will see the original schema via the view without breaking the application.
- Les VUES augmentent la réutilisation. Vous n’aurez pas à créer des requêtes complexes impliquant des jointures à plusieurs reprises. Toute la complexité est convertie en une seule ligne de requête utilisant VIEWS. Un tel code condensé sera plus facile à intégrer dans votre application. Cela éliminera les risques de fautes de frappe et votre code sera plus lisible.
- VIEWS aide à la sécurité des données. Vous pouvez utiliser les vues pour afficher uniquement les informations autorisées aux utilisateurs et masquer les données sensibles telles que les numéros de carte de crédit.
Comment créer des vues dans MySQL
With the syntax and the benefits established, the steps below build a working view end to end.
Voici un processus étape par étape pour créer une vue dans MySQL:
Étape 1) Créez notre première vue en utilisant « myflixdb »
Créons maintenant notre première vue en utilisant « myflixdb », nous allons créer une vue simple qui restreint les colonnes vues dans la table des membres.
Suppose authorization requirements state that the accounts department can only see member’s number, name and gender from the member’s table. To achieve this you can create a VIEW –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Étape 2) Extension du nœud de vues
Exécuter le script ci-dessus dans MySQL l'établi contre myflixdb et l'extension du nœud de vues dans l'explorateur de base de données nous donne les résultats suivants.
Notez que l'objet comptes_v_members est désormais visible dans les objets de vues de base de données.
Étape 3) Exécuter une instruction SELECT
Exécutons maintenant un Instruction SELECT qui sélectionne tous les champs de la vue comme indiqué ci-dessous MySQL créer un exemple de vue.
SELECT * FROM `accounts_v_members`;
Étape 4) Exécuter un script
Exécuter le script ci-dessus dans MySQL workbench contre myflixdb nous donne les résultats suivants indiqués ci-dessous.
| membership_number | full_names | gender |
|---|---|---|
| 1 | Janet Jones | Female |
| 2 | Janet Smith Jones | Female |
| 3 | Robert Phil | Male |
| 4 | Gloria Williams | Female |
| 5 | Leonard Hofstadter | Male |
| 6 | Sheldon Cooper | Male |
| 7 | Rajesh Koothrappali | Male |
| 8 | Leslie Winkle | Male |
| 9 | Howard Wolowitz | Male |
Only the authorized columns for accounts department have been returned. Other details found in the members table have been hidden.
Si nous voulons voir les instructions SQL qui composent une vue particulière, nous pouvons utiliser le script ci-dessous pour le faire.
SHOW CREATE VIEW `accounts_v_members`;
L'exécution du script ci-dessus vous donne le nom de la vue et les instructions SQL SELECT utilisées pour créer la vue.
Jointures et vues dans MySQL
A single-table view is the simplest case. Views become far more valuable when they wrap a multi-table query.
Regardons maintenant un exemple assez complexe qui implique plusieurs tables et utilisations jointures.
Nous regrouperons le JOIN créé qui obtient les informations de trois (3) tables, à savoir les membres, les films et les locations de films. Vous trouverez ci-dessous le script qui nous aide à y parvenir.
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
L'exécution des scripts ci-dessus crée la vue nommée general_v_movie_rentals dans notre myflixdb
Sélectionnons maintenant tous les champs d'une table nommée general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Exécuter le script ci-dessus dans MySQL établi contre myflixdb nous donne les résultats suivants présentés ci-dessous.
| membership_number | full_names | title | transaction_date | return_date |
|---|---|---|---|---|
| 1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
| 1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
| 3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
| 2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
| 3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
Notez que nous n'avons pas eu besoin d'écrire la requête complexe JOIN pour obtenir des informations sur les membres, les films et les détails de location de films. Nous avons simplement utilisé la vue dans une instruction SELECT normale comme n'importe quelle autre table ordinaire. La vue peut être appelée depuis n’importe où dans le système d’application exécuté au-dessus de myflixdb.
Goutteping Vues dans MySQL
La commande DROP peut être utilisée pour supprimer une vue du base de données ce n’est plus nécessaire. La syntaxe de base pour supprimer une vue est la suivante.
DROP VIEW `general_v_movie_rentals`;
Goutteping a view removes only the stored query; the underlying tables and their data are untouched.

