Comment créer une vue de table avec sql

Parfois, vous souhaitez récupérer des informations spécifiques de la table dans SQL CLIENT. Vous ne voulez pas regarder tout - seulement des colonnes et des lignes spécifiques. Ce que vous avez besoin est une vue.

UNE vue est une table virtuelle. Dans la plupart des mises en œuvre, une vue n`a pas d`existence physique indépendante. La définition de la vue existe que dans les métadonnées de la base de données, mais les données proviennent de la table ou des tables à partir de laquelle vous dérivez la vue. Les données de la vue ne sont pas physiquement dupliqué.

view-table unique

Si les informations que vous souhaitez existe dans une seule table, vous pouvez créer une vue unique table des données. Par exemple, supposons que vous voulez regarder les noms et les numéros de téléphone de tous les clients qui vivent dans l`État du New Hampshire. Vous pouvez créer une vue de la table de client qui ne contient que les données que vous voulez. L`instruction SQL suivante crée ce point de vue:

CREATE VIEW NH_CUST ASSELECT Client.Prénom, Client.Nom, CUSTOMER.PhoneFROM CUSTOMERWHERE CUSTOMER.State = `NH` -

Vous pouvez accomplir la même tâche avec moins de frappe si votre implémentation SQL suppose que toutes les références de table sont les mêmes que ceux de la DE clause. Si votre système fait cette hypothèse par défaut raisonnable, vous pouvez réduire la déclaration aux lignes suivantes:

CREATE VIEW NH_CUST ASSELECT FirstName, LastName, PhoneFROM CUSTOMERWHERE ÉTAT = « NH`-

Bien que la deuxième version est plus facile à lire et écrire, il est plus vulnérable aux perturbations causées ALTER TABLE les commandes. Une telle interruption est un problème pour ce cas simple, qui n`a pas JOINDRE, mais vues avec JOINDREs sont plus robustes quand ils utilisent des noms qualifiés.

multitable vue

Plus souvent qu`autrement, vous devez extraire des données à partir de deux ou plusieurs tables pour répondre à votre question. Supposons, par exemple, que vous travaillez pour un magasin d`articles de sport, et que vous voulez envoyer un mailing promotionnel à tous les clients qui ont acheté du matériel de ski depuis le magasin a ouvert l`année dernière.

Vous avez besoin d`informations de la table CLIENT, la table des produits, la table FACTURE, et la table INVOICE_LINE. Vous pouvez créer une vue multitable qui montre les données dont vous avez besoin. Chaque fois que vous utilisez la vue, il reflète les changements survenus dans les tables sous-jacentes depuis la dernière utilisation de la vue.

La base de données pour ce magasin de sport contient quatre tables: CLIENT, PRODUIT, FACTURE et INVOICE_LINE.

TableColonneType de donnéesContrainte
CLIENTN ° de clientENTIERNOT NULL
PrénomCHAR (15)
Nom de familleCHAR (20)NOT NULL
rueCHAR (25)
VilleCHAR (20)
EtatCHAR (2)
Code postalCHAR (10)
TéléphoneCHAR (13)
PRODUITProductIDENTIERNOT NULL
prénomCHAR (25)
La descriptionCHAR (30)
CatégorieCHAR (15)
Fournisseur IDENTIER
VendorNameCHAR (30)
FACTURE D`ACHATNuméro de factureENTIERNOT NULL
N ° de clientENTIER
InvoiceDateRENDEZ-VOUS AMOUREUX
TotalSaleNUMERIQUE (9,2)
TotalRemittedNUMERIQUE (9,2)
Forme de payementCHAR (10)
INVOICE_LINENuméro de ligneENTIERNOT NULL
Numéro de factureENTIERNOT NULL
ProductIDENTIERNOT NULL
QuantitéENTIER
Prix ​​de venteNUMERIQUE (9,2)

Notez que certaines colonnes contiennent la contrainte NOT NULL. Ces colonnes sont soit les clés primaires de leurs tables respectives ou les colonnes que vous décidiez doit contenir une valeur. clé primaire d`une table doit identifier de manière unique chaque ligne. Pour ce faire, la clé primaire doit contenir une valeur non nulle dans chaque ligne.

Les tableaux se rapportent les uns aux autres à travers les colonnes qu`ils ont en commun. La liste suivante décrit ces relations:

  • La table des clients porte un un à-plusieurs à la table FACTURE. Un client peut effectuer plusieurs achats, générer des factures multiples. Chaque facture, cependant, traite d`un, et un seul, le client.

  • La table FACTURE porte un-à-plusieurs à la table de INVOICE_LINE. Une facture peut avoir plusieurs lignes, mais chaque ligne apparaît sur une, et une seule, la facture.

    Video: Apprendre MySQL - Créer une table

  • Le tableau de produit porte également un à-plusieurs à la table de INVOICE_LINE. Un produit peut apparaître sur plus d`une ligne sur une ou plusieurs factures. Chaque ligne, cependant, traite d`un, et un seul, produit.

Les liens de table des clients à la table FACTURE par la commune N ° de client colonne. Les liens de table FACTURE à la table INVOICE_LINE par la commune Numéro de facture colonne. Les liens de table produit à la table INVOICE_LINE par la commune ProductID colonne. Ces liens sont ce qui rend cette base de données une relationnel base de données.

Pour accéder aux informations sur les clients qui ont acheté du matériel de ski, vous avez besoin Prénom, Nom de famille, rue, Ville, Etat, et Code postal de la table- CLIENT Catégorie de la table- DU PRODUIT Numéro de facture de la table- INVOICE et Numéro de ligne de la table INVOICE_LINE. Vous pouvez créer la vue que vous voulez en plusieurs étapes en utilisant les instructions suivantes:

CREATE VIEW SKI_CUST1 ASSELECT FirstName, LastName, Rue, Ville, État, code postal, InvoiceNumberFROM CLIENT INSCRIPTION INVOICEUSING (CustomerID) -Créer VIEW SKI_CUST2 ASSELECT FirstName, LastName, Rue, Ville, État, code postal, ProductIDFROM SKI_CUST1 REJOIGNEZ INVOICE_LINEUSING (InvoiceNumber) VOIR -Créer SKI_CUST3 ASSELECT FirstName, LastName, rue, Ville, État, code postal, CategoryFROM SKI_CUST2 REJOIGNEZ PRODUCTUSING (ProductID) -Créer VIEW SKI_CUST ASSELECT DISTINCT FirstName, LastName, rue, Ville, État, ZipcodeFROM SKI_CUST3WHERE CATEGORY = `ski` -

Celles-ci CREATE VIEW les états combinent les données de plusieurs tables en utilisant les JOINDRE opérateur.

Voici un aperçu des quatre CREATE VIEW déclarations:

  • La première déclaration combine des colonnes de la table client avec une colonne de la table FACTURE pour créer la SKI_CUST1 vue.

  • La deuxième déclaration de moissonneuses-batteuses SKI_CUST1 avec une colonne de la table de INVOICE_LINE pour créer le SKI_CUST2 vue.

  • La troisième déclaration combinats SKI_CUST2 avec une colonne de la table de produit pour créer le SKI_CUST3 vue.

  • La quatrième déclaration filtre toutes les lignes qui ne sont pas une catégorie de Ski. Le résultat est une vue (SKI_CUST) Qui contient les noms et adresses de tous les clients qui ont acheté au moins un produit dans la Ski Catégorie.

    le DISTINCT mot-clé dans la quatrième CREATE VIEW« s SÉLECTIONNER clause garantit que vous avez une seule entrée pour chaque client, même si certains clients ont fait plusieurs achats d`articles de ski.

Articles connexes