Comment créer des vues pour récupérer et manipuler des données de SQL

Une des fonctionnalités les plus puissantes de SQL est sa capacité à afficher des vues des données qui sont structurés différemment de la façon dont les tables de base de données à stocker les données. La structure de base de données qui est conçu selon les principes de son - y compris la normalisation appropriée - maximise l'intégrité des données.

Sommaire

Cette structure, cependant, est souvent pas la meilleure façon de regarder les données. Plusieurs applications peuvent utiliser les mêmes données, mais chaque application peut avoir un accent différent. Les tableaux que vous utilisez comme sources de colonnes et de lignes dans une vue sont les tables de base.

UN SELECT instruction renvoie toujours un résultat sous la forme d'une table virtuelle. UN vue est un type spécial de table virtuelle. Vous pouvez distinguer une vue à partir d'autres tables virtuelles, car les métadonnées de la base de données contient la définition d'une vue. Cette distinction donne une vue d'un degré de persistance que d'autres tables virtuelles ne possèdent pas.

Vous pouvez manipuler une vue juste comme vous pouvez manipuler une vraie table. La différence est que les données d'un point de vue ne sont pas une existence indépendante. La vue puise ses données de la table ou des tables à partir de laquelle vous dessinez les colonnes de la vue. Chaque application peut avoir ses propres vues uniques sur les mêmes données.

Supposons une base de données contient cinq tableaux: Client, ESSAIS, employé, commandes et de résultats. Supposons que le directeur national du marketing veut voir partir desquels les États les ordres de la société sont à venir. Certaines de ces informations réside dans le CLIENT table- des mensonges dans le tableau des commandes.

Supposons que l'agent de contrôle de qualité veut comparer la date de la commande d'un test à la date à laquelle le résultat final de l'essai est venu. Cette comparaison nécessite certaines données de la table Commandes et une partie de la table des résultats. Pour satisfaire les besoins de ce type, vous pouvez créer des vues qui vous donnent exactement les données que vous voulez dans chaque cas.

De tables




Pour le directeur du marketing, vous pouvez créer ce point de vue.

image0.jpg

L'instruction suivante crée le point de vue du gestionnaire de la commercialisation:

CREATE VIEW ORDERS_BY_STATE (ClientName, État, OrderNumber) AS SELECT CLIENT.ClientName, État, OrderNumberFROM CLIENT, ORDERSWHERE CLIENT.ClientName = ORDERS.ClientName -

La nouvelle vue comporte trois colonnes: Nom du client, État, et Numéro de commande. Nom du client apparaît dans les tableaux à la fois le client et des ordres et sert de lien entre les deux tables. La nouvelle vue attire État informations de la table du client et prend la Numéro de commande de la table Orders. Dans l'exemple précédent, vous déclarez les noms des colonnes explicitement dans la nouvelle vue.

On notera que le Nom du client est préfixé avec la table qui contient, mais il est pas fait pour État et Numéro de commande. C'est parce que État apparaît uniquement dans la table des clients et Numéro de commande apparaît seulement dans la table Orders, donc il n'y a aucune ambiguïté. cependant, Nom du client apparaît dans les deux CLIENT et ORDONNE, si l'identificateur supplémentaire est nécessaire.

Vous ne devez pas cette déclaration si les noms sont les mêmes que les noms des colonnes correspondantes dans les tables source. L'exemple montre un similaire CREATE VIEW déclaration, sauf que les noms vue de colonnes sont implicites plutôt que explicitement déclaré.

Avec une condition de sélection

L'agent de contrôle de qualité nécessite une vue différente de celle que le directeur du marketing utilise.

image1.jpg

Voici le code qui crée la vue:

CREATE VIEW REPORTING_LAGAS SELECT ORDERS.OrderNumber, ORDONNANCES OrderDate, DateReportedFROM, RESULTSWHERE ORDERS.OrderNumber = RESULTS.OrderNumberAND RESULTS.PreliminaryFinal = 'F' -

Cette vue contient des informations pour jour de la table Commandes et finale-rapport des informations actualisées à partir de la table des résultats. Seules les lignes qui ont un 'F' dans le PreliminaryFinal colonne du tableau des résultats apparaissent dans le LAG RAPPORTS vue. Notez également que la liste des colonnes dans la vue ORDERS_BY_STATE est facultative. La REPORTING_LAG vue fonctionne très bien sans une telle liste.

Avec un attribut modifié

La SELECT clauses ne contiennent que des noms de colonnes. Vous pouvez inclure des expressions dans le SELECT clause ainsi. Supposons propriétaire de VetLab est d'avoir un anniversaire et veut donner à tous ses clients un rabais de 10 pour cent pour célébrer. Il peut créer une vue basée sur la table COMMANDES et le tableau des tests. Il peut construire ce tableau comme le montre l'exemple de code suivant:

CREATE VIEW ANNIVERSAIRE (ClientName, Test, OrderDate, BirthdayCharge) AS SELECT ClientName, TestOrdered, OrderDate, StandardCharge * COMMANDES .9FROM, TESTSWHERE TestOrdered = TestName -

Notez que la seconde colonne dans la ANNIVERSAIRE vue - Test - correspond à la TestOrdered colonne dans la table des commandes, ce qui correspond également à la TestName colonne dans la table TESTS.

image2.jpg

Vous pouvez construire une vue basée sur plusieurs tables, comme indiqué dans les exemples précédents, ou vous pouvez construire une vue basée sur une seule table. Si vous ne devez pas certaines des colonnes ou des lignes, créer une vue d'éliminer ces éléments, puis face à la vue plutôt que la table d'origine. Cette approche garantit que les utilisateurs ne voient que les parties de la table qui sont pertinents.

Une autre raison pour la création d'une vue est d'assurer la sécurité de ses tables sous-jacentes. Vous voudrez peut-être faire quelques colonnes de vos tables disponibles pour inspection, tout en cachant les autres. Vous pouvez créer une vue qui inclut uniquement les colonnes que vous souhaitez rendre disponibles et ensuite accorder un large accès à ce point de vue, tout en limitant l'accès aux tables à partir de laquelle vous dessinez la vue.


» » » » Comment créer des vues pour récupérer et manipuler des données de SQL