Maison > base de données > tutoriel mysql > Détails de la vue SQL

Détails de la vue SQL

黄舟
Libérer: 2017-02-27 13:34:42
original
2591 Les gens l'ont consulté

View

View est une table virtuelle. Contrairement aux tables de données contenues, les vues contiennent uniquement des données récupérées dynamiquement lorsqu'elles sont utilisées par une requête. En tant que vue, elle ne contient aucune colonne ni donnée, seulement une requête.

Pourquoi utiliser les vues ?

1 : Réutilisez les instructions SQL.

2 : Simplifiez les opérations SQL complexes. Après avoir écrit une requête, vous pouvez facilement la réutiliser sans connaître les détails de sa requête sous-jacente.

3 : Utiliser une partie du tableau au lieu du tableau entier.

4 : Protéger les données. Les utilisateurs peuvent avoir accès à des parties spécifiques d'un tableau plutôt qu'à l'ensemble du tableau.

5 : Modifier le format et la représentation des données. Les vues peuvent renvoyer des données représentées et formatées différemment de la table sous-jacente.

Après avoir créé des vues, vous pouvez les utiliser de la même manière que des tableaux. Vous pouvez effectuer des opérations SELECT sur des vues, filtrer et trier des données et joindre des vues à d'autres vues ou tables.

Il est important de savoir qu'une vue est simplement un paramètre permettant de visualiser des données stockées ailleurs. La vue elle-même ne contient aucune donnée, les données renvoyées sont donc récupérées à partir d'autres tables. Lorsque vous ajoutez et modifiez des données dans ces tables, la vue renvoie les données modifiées.

Certaines des règles et restrictions les plus courantes concernant la création et l'utilisation de vues

(1) Comme les tables, les vues doivent porter un nom unique

(2) Pour les appareils portables Là il n'y a pas de limite au nombre de vues

(3) Afin de créer une vue, vous devez disposer de droits d'accès suffisants. Ces autorisations sont généralement accordées par l'administrateur de la base de données.

(4) Les vues peuvent être imbriquées, c'est-à-dire qu'une vue peut être construite à l'aide de requêtes qui récupèrent des données d'autres vues.

(5) De nombreux SGBD interdisent l'utilisation de la clause ORDER BY dans les requêtes de vue.

(6) Certains SGBD nécessitent de nommer toutes les colonnes renvoyées. Si la colonne est un champ calculé, vous devez utiliser des alias.

(7) Les vues ne peuvent pas être indexées et ne peuvent pas avoir de déclencheurs associés ou de valeurs par défaut.

(8) Certains SGBD utilisent les vues comme requêtes en lecture seule, ce qui signifie que les données peuvent être récupérées à partir de la vue, mais que les données ne peuvent pas être écrites dans la table sous-jacente.

(9) Certains SGBD permettent la création de vues qui n'autorisent pas les insertions ou les mises à jour qui font que les lignes n'appartiennent plus à la vue.



Création de vues

Les vues sont créées à l'aide de l'instruction CREATE VIEW.

Utilisez l'instruction DROP pour supprimer une vue, la syntaxe est : DROP VIEW viewname ;

Utilisez des vues pour simplifier les connexions complexes

CREATE VIEW ProductCustomers ASSELECT cust_name,cust_contact,prod_idFROM Customers,Orders,
OrderItemsWHERE Customers.cust_id = Order.cust_id AND OrderItems.order_num = Order.order_num;
Copier après la connexion

Ceci instruction Créez une vue appelée ProductCustomers qui joint trois tables pour renvoyer une liste de tous les clients qui ont commandé un produit.

Récupérer les clients ayant commandé le produit RGAN01

SELECT cust_name,cust_contactFROM ProductCustomersWHERE prod_id = 'RGAN01';
Copier après la connexion

用视图重新格式化检索出的数据

创建格式化视图

CREATE VIEW VendorsLocations ASSELECT RTRM(vend_name) || ' ( ' || RTRIM(vend_country) || ' ) ' AS vend_titleFROM Vendors;
Copier après la connexion

用试图过滤不想要的数据

定义CustomerEMailList 视图,过滤没有电子邮件地址的客户。

CREATE VIEW CustomerEMailList ASSELECT cust_id, cust_name, cust_emailFROM CustomersWHERE cust_email IS NOT NULL;
Copier après la connexion

使用视图与计算字段

检索某个特定订单中的物品,计算每种物品的总价格

CREATE VIEW OrderItemExpanded ASSELECT order_num, prod_id, quantity, item_price, quantity*item_price AS expanded_price
FROM OrderItems;
Copier après la connexion

根据视图检索订单20008的详细内容

SELECT *FROM OrderItemsExpandedWHERE order_num = 20008;
Copier après la connexion

 以上就是SQL视图 详细介绍的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal