Unterschied zwischen Ansicht und Tabelle in SQL

135

Mögliches Duplikat:
Unterschied zwischen Ansichten und Tabellen in der Leistung

Was ist der Hauptunterschied zwischen Ansicht und Tabelle in SQL? Gibt es einen Vorteil der Verwendung von Ansichten anstelle von Tabellen?

Mahesh KP
quelle
1
Mögliches Duplikat des Unterschieds zwischen Ansichten und Tabellen in der Leistung
Brian Tompsett - 莱恩 莱恩
6
Scheint kein Duplikat zu sein. Der verlinkte Beitrag fragt speziell nach Leistung / Effizienz. In diesem Beitrag wird mehr darüber gefragt, wie sie sich als Datentypen unterscheiden, wie die ausgewählte Antwort darstellt.
..

Antworten:

196

Eine Tabelle enthält Daten, eine Ansicht ist nur eine SELECTAnweisung, die in der Datenbank gespeichert wurde (mehr oder weniger, abhängig von Ihrer Datenbank).

Der Vorteil einer Ansicht besteht darin, dass sie Daten aus mehreren Tabellen verknüpfen und so eine neue Ansicht erstellen kann. Angenommen, Sie haben eine Datenbank mit Gehältern und müssen einige komplexe statistische Abfragen durchführen.

Anstatt die komplexe Abfrage ständig an die Datenbank zu senden, können Sie die Abfrage als Ansicht speichern und dann SELECT * FROM view

Aaron Digulla
quelle
11
Die Ansicht ist also eine Tabelle, die von einer select-Anweisung erstellt wurde. Die Ansicht wird gespeichert und kann aufgerufen werden. Was wäre der Unterschied zwischen dem Erstellen einer neuen Tabelle mit diesen Informationen anstelle einer Ansicht?
Doug Hauf
23
Sie können sich eine Ansicht als "gespeicherte Select-Anweisung" vorstellen, die Sie wiederholen können. Es ist nicht wirklich ein Tisch; Obwohl in einigen Datenbanken Ansichten erstellt werden können, unter denen sich eine echte Tabelle befindet, handelt es sich nur um eine SELECTAnweisung, die Ergebnisse zurückgibt.
Aaron Digulla
1
etwas zu beachten: einige Listenansichten des Datenbanksystems zusammen mit Tabellen in "Tabellen anzeigen"; Befehl.
Dexter
1
@ShwetabhShekhar Das hängt von Ihrer Datenbank und der Art der Ansicht ab. In der einfachsten Form führt die Datenbank die SQL so aus, als hätten Sie gerade das Ganze gesendet. In diesem Fall speichern Sie einfach das Senden der vielen Bytes immer wieder. Einige Datenbanken können die Abfrage ausführen und das Ergebnis in einer (realen) Tabelle speichern. Dann müssen Sie die von Ihnen erwähnten Probleme irgendwie lösen. Überprüfen Sie dazu die DB-Dokumentation.
Aaron Digulla
1
@ FoxDeploy Ja, da diese Ansicht in keiner Weise hilft. Nützliche Szenarien wären eine Ansicht mit eingeschränkten Berechtigungen oder eine Ansicht, in der eine Tabelle aus einem anderen Schema in derselben Datenbank oder einer anderen Datenbank (Remote-Tabelle) ausgewählt wird.
Aaron Digulla
34

Tabelle: Tabelle ist ein vorläufiger Speicher zum Speichern von Daten und Informationen in RDBMS. Eine Tabelle ist eine Sammlung zusammengehöriger Dateneinträge und besteht aus Spalten und Zeilen.

Ansicht: Eine Ansicht ist eine virtuelle Tabelle, deren Inhalt durch eine Abfrage definiert wird. Sofern nicht indiziert, existiert eine Ansicht nicht als gespeicherter Satz von Datenwerten in einer Datenbank. Vorteile gegenüber Tisch sind

  • Wir können Spalten / Zeilen aus mehreren Tabellen oder einer anderen Ansicht kombinieren und eine konsolidierte Ansicht haben.
  • Ansichten können als Sicherheitsmechanismen verwendet werden, indem Benutzer über die Ansicht auf Daten zugreifen können, ohne den Benutzern die Berechtigung zu erteilen, direkt auf die zugrunde liegenden Basistabellen der Ansicht zuzugreifen
  • Es fungiert als abstrakte Schicht für nachgeschaltete Systeme, sodass Änderungen im Schema nicht offengelegt werden und daher die nachgelagerten Systeme nicht betroffen sind.
Senthil_Arun
quelle
16

Eine Ansicht ist eine virtuelle Tabelle. Eine Ansicht besteht wie eine Tabelle aus Zeilen und Spalten. Der Unterschied zwischen einer Ansicht und einer Tabelle besteht darin, dass Ansichten Definitionen sind, die auf anderen Tabellen (oder Ansichten) basieren und keine Daten selbst enthalten. Wenn sich Daten in der zugrunde liegenden Tabelle ändern, wird dieselbe Änderung in der Ansicht angezeigt. Eine Ansicht kann auf einer einzelnen Tabelle oder mehreren Tabellen erstellt werden. Es kann auch auf einer anderen Ansicht erstellt werden. Auf der Seite SQL-Ansicht erstellen sehen wir, wie eine Ansicht erstellt werden kann.

Ansichten bieten folgende Vorteile:

  1. Benutzerfreundlichkeit: Eine Ansicht verbirgt die Komplexität der Datenbanktabellen vor Endbenutzern. Im Wesentlichen können wir uns Ansichten als eine Abstraktionsebene über den Datenbanktabellen vorstellen.

  2. Platzersparnis: Ansichten benötigen nur sehr wenig Speicherplatz, da sie keine tatsächlichen Daten speichern.

  3. Zusätzliche Datensicherheit: Ansichten können nur bestimmte Spalten in die Tabelle aufnehmen, sodass nur die nicht vertraulichen Spalten enthalten sind und dem Endbenutzer angezeigt werden. Darüber hinaus ermöglichen einige Datenbanken Ansichten unterschiedliche Sicherheitseinstellungen, wodurch vertrauliche Daten vor neugierigen Blicken verborgen bleiben.

Antwort von: http://www.1keydata.com/sql/sql-view.html

SuperGuy10
quelle
4

In Sicht gibt es keine direkte oder physische Beziehung zur Datenbank. Eine Änderung durch eine Ansicht (z. B. Einfügen, Aktualisieren, Löschen) ist nicht zulässig. Es handelt sich lediglich um einen logischen Satz von Tabellen

Haris
quelle
1
In SQL Server können Sie die zugrunde liegende Tabelle über eine Ansicht ändern, wenn sie nur auf eine Basistabelle verweist. siehe hier
Kristen Hammack
3

Eine Ansicht hilft uns dabei, den Datenbankspeicher ständig zu nutzen. Wenn Sie eine Tabelle erstellen, wird diese in der Datenbank gespeichert und enthält während ihrer gesamten Existenz Speicherplatz. Stattdessen wird die Ansicht verwendet, wenn eine Abfrage ausgeführt wird, wodurch der Datenbankspeicherplatz gespart wird. Und wir können nicht immer große Tabellen erstellen, um verschiedene Tabellen zu verbinden, obwohl dies möglich ist, aber es hängt davon ab, wie groß die Tabelle ist, um Platz zu sparen. View erstellt also nur vorübergehend eine Tabelle mit der Verknüpfung verschiedener Tabellen zur Laufzeit. Experten, bitte korrigieren Sie mich, wenn ich falsch liege.

Deepak Ranjan Mohanty
quelle
2

Tabelle:

Tabelle speichert die Daten in der Datenbank und enthält die Daten.

Aussicht:

Ansicht ist eine imaginäre Tabelle, enthält nur die Felder (Spalten) und keine Daten (Zeilen), die zur Laufzeit eingerahmt werden. Ansichten, die aus einer oder mehreren Tabellen durch Verknüpfungen mit ausgewählten Spalten erstellt wurden. Ansichten werden erstellt, um einige Spalten aus Sicherheitsgründen vor dem Benutzer auszublenden und um Informationen in der Spalte auszublenden. Ansichten reduzieren den Aufwand für das Schreiben von Abfragen, um jedes Mal auf bestimmte Spalten zuzugreifen. Anstatt die komplexe Abfrage jedes Mal auf die Datenbank zu übertragen, können wir die Ansicht verwenden

Hari
quelle