Vue SQL expliquée - Comment créer une vue dans SQL et MySQL

Qu'est-ce qu'une vue dans SQL?

Une vue est un objet de base de données qui présente des données existant dans une ou plusieurs tables. Les vues sont utilisées de la même manière que les tables, mais elles ne contiennent aucune donnée. Ils «pointent» simplement vers les données qui existent ailleurs (tables ou vues, par exemple).

Pourquoi les aimons-nous?

  • Les vues sont un moyen de limiter les données présentées. Par exemple, les données du service des ressources humaines ont été filtrées pour ne présenter que des informations sensibles. Les informations sensibles dans ce cas peuvent être les numéros de sécurité sociale, le sexe de l'employé, le salaire, l'adresse du domicile, etc.
  • Les données complexes de plusieurs tableaux peuvent être combinées en une seule «vue». Cela peut faciliter la vie de vos analystes commerciaux et programmeurs.

Conseils de sécurité importants

  • Les vues sont gérées par le système. Lorsque les données des tables associées sont modifiées, ajoutées ou mises à jour, la vue est mise à jour par le système. Nous souhaitons les utiliser uniquement lorsque cela est nécessaire pour gérer l'utilisation des ressources système.
  • Dans MySQL, les modifications apportées à la conception de la table (c'est-à-dire les colonnes nouvelles ou supprimées) effectuées APRÈS la création d'une vue ne sont pas mises à jour dans la vue elle-même. La vue devrait être mise à jour ou recréée.
  • Les vues sont l'un des quatre types d'objet de base de données standard. Les autres sont des tables, des procédures stockées et des fonctions.
  • Les vues peuvent généralement être traitées comme vous le feriez pour une table, mais les mises à jour sont limitées ou non disponibles lorsque la vue contient plusieurs tables.
  • Il existe de nombreux autres détails sur les vues qui sortent du cadre de ce guide d'introduction. Passez du temps avec le manuel de votre gestionnaire de base de données et amusez-vous avec ce puissant objet SQL.

Syntaxe de l'instruction Create View (MySQL)

CREATE [OR REPLACE] [ALGORITHM =  TEMPTABLE] [DEFINER =  CURRENT_USER ] [SQL SECURITY  DEFINER ] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 

Ce guide couvrira cette partie de la déclaration…

CREATE VIEW view_name [(column_list)] AS select_statement 

Exemple de création de vue à partir des tables des élèves

Remarques:

  • Le nom de la vue a un «v» à la fin. Il est recommandé que le nom de la vue indique qu'il s'agit d'une vue afin de faciliter la vie des programmeurs et des administrateurs de base de données. Votre boutique informatique doit avoir ses propres règles de dénomination des objets.
  • Les colonnes de la vue sont limitées par SELECT et les lignes de données par la clause WHERE.
  • le caractère «« »autour des noms de vue est requis à cause du« - »dans les noms. MySQL signale une erreur sans eux.
create view `programming-students-v` as select FullName, programOfStudy from student where programOfStudy = 'Programming'; select * from `programming-students-v`; 

Exemple d'utilisation d'une vue pour combiner des données de plusieurs tables

Un tableau des données démographiques des étudiants a été ajouté à la base de données pour illustrer cette utilisation. Cette vue combinera ces tableaux.

Remarques:

  • Pour «joindre» des tables, les tables doivent avoir des champs en commun (généralement des clés primaires) qui identifient de manière unique chaque ligne. Dans ce cas, il s'agit de la carte d'étudiant. (Plus d'informations à ce sujet dans le guide des jointures SQL.)
  • Notez «l'alias» donné à chaque table («s» pour étudiant et «sc» pour contact étudiant). Il s'agit d'un outil pour raccourcir les noms de table et faciliter l'identification de la table utilisée. C'est plus facile que de taper de longs noms de table à plusieurs reprises. Dans cet exemple, il était obligatoire car studentID est le même nom de colonne dans les deux tables, et le système présenterait une «erreur de nom de colonne ambiguë» sans spécifier la table à utiliser.