Différence entre vue et table en SQL

136

Duplication possible:
différence entre les vues et les tables en termes de performances

Quelle est la principale différence entre vue et table en SQL. Y a-t-il un avantage à utiliser des vues au lieu de tables.

Mahesh KP
la source
1
Double possible de la différence entre les vues et les tables dans les performances
Brian Tompsett - 汤 莱恩
6
Cela ne semble pas être un doublon. La publication liée pose spécifiquement des questions sur les performances / l'efficacité. Cet article vous demande plus en quoi ils diffèrent en tant que types de données, comme le représente la réponse sélectionnée.
Ð ..

Réponses:

197

Une table contient des données, une vue est juste une SELECTinstruction qui a été enregistrée dans la base de données (plus ou moins, selon votre base de données).

L'avantage d'une vue est qu'elle peut joindre les données de plusieurs tables, créant ainsi une nouvelle vue de celle-ci. Supposons que vous ayez une base de données avec des salaires et que vous deviez effectuer des requêtes statistiques complexes à ce sujet.

Au lieu d'envoyer la requête complexe à la base de données tout le temps, vous pouvez enregistrer la requête en tant que vue, puis SELECT * FROM view

Aaron Digulla
la source
11
Ainsi, la vue est en fait une table créée par une instruction select. La vue est stockée et accessible, quelle serait la différence entre la création d'une nouvelle table avec ces informations au lieu d'une vue.
Doug Hauf
23
Vous pouvez considérer une vue comme une «instruction de sélection enregistrée» que vous pouvez répéter. Ce n'est pas vraiment une table; même si certaines bases de données permettent de créer des vues qui ont une vraie table en dessous, c'est en réalité juste une SELECTinstruction qui renvoie des résultats.
Aaron Digulla
1
quelque chose à noter: certaines vues de liste du système de base de données ainsi que des tables sur "show tables"; commander.
Dexter
1
@ShwetabhShekhar Cela dépend de votre base de données et du type de vue. Dans la forme la plus simple, la base de données exécutera le SQL comme si vous veniez d'envoyer le tout. Dans ce cas, vous enregistrez simplement l'envoi des nombreux octets encore et encore. Certaines bases de données peuvent exécuter la requête et stocker le résultat dans une table (réelle). Ensuite, vous devez résoudre les problèmes que vous avez mentionnés. Consultez la documentation de la base de données pour savoir comment procéder.
Aaron Digulla
1
@FoxDeploy Oui, car cette vue n'aide en rien. Des scénarios utiles seraient une vue avec des autorisations limitées ou une vue qui sélectionne une table à partir d'un autre schéma dans la même base de données ou une autre base de données (table distante).
Aaron Digulla
34

Table: Table est un stockage préliminaire pour stocker des données et des informations dans le SGBDR. Une table est une collection d'entrées de données associées et se compose de colonnes et de lignes.

Vue: une vue est une table virtuelle dont le contenu est défini par une requête. À moins d'être indexée, une vue n'existe pas en tant qu'ensemble stocké de valeurs de données dans une base de données. Les avantages par rapport à la table sont

  • Nous pouvons combiner des colonnes / lignes de plusieurs tables ou d'une autre vue et avoir une vue consolidée.
  • Les vues peuvent être utilisées comme mécanismes de sécurité en permettant aux utilisateurs d'accéder aux données via la vue, sans accorder aux utilisateurs les autorisations d'accéder directement aux tables de base sous-jacentes de la vue
  • Il agit comme une couche abstraite pour les systèmes en aval, de sorte que tout changement de schéma n'est pas exposé et, par conséquent, les systèmes en aval ne sont pas affectés.
Senthil_Arun
la source
16

Une vue est une table virtuelle. Une vue se compose de lignes et de colonnes comme un tableau. La différence entre une vue et une table est que les vues sont des définitions construites au-dessus d'autres tables (ou vues) et ne contiennent pas de données elles-mêmes. Si les données changent dans la table sous-jacente, la même modification est reflétée dans la vue. Une vue peut être construite au-dessus d'une seule table ou de plusieurs tables. Il peut également être construit sur une autre vue. Dans la page SQL Create View, nous verrons comment une vue peut être construite.

Les vues offrent les avantages suivants:

  1. Facilité d'utilisation: une vue masque la complexité des tables de la base de données aux utilisateurs finaux. Essentiellement, nous pouvons considérer les vues comme une couche d'abstraction au-dessus des tables de la base de données.

  2. Gain d'espace: les vues prennent très peu d'espace à stocker, car elles ne stockent pas les données réelles.

  3. Sécurité des données supplémentaire: les vues peuvent inclure uniquement certaines colonnes du tableau afin que seules les colonnes non sensibles soient incluses et exposées à l'utilisateur final. De plus, certaines bases de données permettent aux vues d'avoir des paramètres de sécurité différents, cachant ainsi les données sensibles aux regards indiscrets.

Réponse de: http://www.1keydata.com/sql/sql-view.html

SuperGuy10
la source
4

En vue, il n'y a pas de relation directe ou physique avec la base de données. Et la modification via une vue (par exemple insérer, mettre à jour, supprimer) n'est pas autorisée, c'est juste un ensemble logique de tables

Haris
la source
1
Dans SQL Server, vous pouvez modifier la table sous-jacente via une vue, si elle ne fait référence qu'à une seule table de base. voir ici
Kristen Hammack
3

Une vue nous aide à nous débarrasser de l'utilisation permanente de l'espace de la base de données. Si vous créez une table, elle est stockée dans la base de données et contient de l'espace tout au long de son existence. Au lieu de cela, la vue est utilisée lorsqu'une requête s'exécute, économisant ainsi l'espace de base de données. Et nous ne pouvons pas créer de grandes tables tout le temps en joignant différentes tables, mais cela dépend de la taille de la table pour économiser de l'espace. Donc, afficher juste temporairement créer une table avec la jonction de différentes tables au moment de l'exécution. Experts, veuillez me corriger si je me trompe.

Deepak Ranjan Mohanty
la source
2

Table:

Table stocke les données dans la base de données et contient les données.

Vue:

View est une table imaginaire, ne contient que les champs (colonnes) et ne contient pas de données (ligne) qui seront encadrées lors de l'exécution Vues créées à partir d'une ou plusieurs tables par jointures, avec des colonnes sélectionnées. Des vues sont créées pour masquer certaines colonnes à l'utilisateur pour des raisons de sécurité, et pour masquer les informations existent dans la colonne. Views réduit l'effort pour écrire des requêtes pour accéder à des colonnes spécifiques à chaque fois Au lieu de frapper la requête complexe dans la base de données à chaque fois, nous pouvons utiliser view

Hari
la source