2010-07-27 8 views
11

Was sind Ansichten in MySQL? Was ist die Sichtweise und wie oft werden sie in der realen Welt verwendet?Was sind Ansichten in MySQL?

Ich bin nach Laien Erklärung bitte mit einem Beispiel, wenn möglich, mein Verständnis zu unterstützen!

Vielen Dank im Voraus ;-)

Antwort

10

Normale Ansichten sind nichts mehr als abfragbaren Abfragen.

Beispiel:

Sie haben zwei Tabellen, Aufträge und Kunden, Aufträge hat die Felder ID, customer_id, performance_date und Kunden hat id, vorname, nachname.

können nun sagen Sie den Auftrag id, Leistung Datum und Name des Kunden zusammen, anstatt die Ausgabe dieser Abfrage zeigen wollen:

SELECT o.id as order_id, c.first_name + ' ' + c.last_name as customer_name, 
      o.performance_date 
FROM  orders o inner join customers c 

Sie diese Abfrage als eine Ansicht erstellen könnte und nennen Sie es orders_with_customers, in der Anwendung Sie können nun

SELECT * 
FROM  orders_with_customer 

ein Vorteil Abstraktion die Abfrage ausgeben, könnten Sie so, wie Sie den Kunden Namen speichern ändern, wie ein zweiter Name inlcuding, und nur die Ansichten Abfrage ändern. Alle Anwendungen, die die Ansicht verwendet haben, tun dies weiterhin, enthalten jedoch jetzt den zweiten Vornamen.

0

Sie sind eine Abkürzung für gemeinsame Filter.

Sagen Sie eine Tabelle von Datensätzen mit einer gelöschten Spalte haben. Normalerweise wären Sie nicht an gelöschten Datensätzen interessiert, und Sie könnten daher eine Ansicht namens Records erstellen, die gelöschte Datensätze aus der AllRecords-Tabelle herausfiltert.

Dies wird Ihre Code Reinigung machen, da Sie müssen jede Aussage nicht anhängen/prepend deleted != 1 an.

SELECT * FROM Records 

würde alle nicht gelöschten Datensätze zurückgeben.

0

In einfachen Worten

In SQL ist eine Ansicht, eine virtuelle Tabelle basierend auf dem Ergebnis-Satz einer SQL-Anweisung .

Eine Ansicht enthält Zeilen und Spalten, nur wie ein richtiger Tisch. Die Felder in einem Ansicht sind Felder aus einem oder mehreren realen Tabellen in der Datenbank.

können Sie SQL-Funktionen hinzufügen, wo und Aussagen zu einer Ansicht JOIN und Gegenwart die Daten als ob die Daten aus einer einzigen Tabelle kamen.

Source

In addtion dazu können Sie Zeilen in einem darunter liegenden table von einem view vorgesehen einsetzen, dass die nur eine Tabelle durch die Ansicht und Spalten bezeichnet wird, die in der Ansicht nicht bezeichnet wird NULL-Werte zulassen.

0

Eine Ansicht ist eine Möglichkeit, bestimmte Abfragen vorzudefinieren. Es kann genau wie eine Tabelle abgefragt werden, die durch eine Abfrage und nicht durch eine Reihe von Daten auf der Festplatte definiert wird. Durch Abfragen können Sie die Ergebnisse der Tabelle abfragen.

In den meisten Fällen kann die Abfrage einer Ansicht als gleichbedeutend mit der Verwendung der definierenden Abfrage der Ansicht als Unterabfrage in der Hauptabfrage angesehen werden. Ansichten ermöglichen, dass Abfragen kürzer und modularer sind (da die gemeinsamen Teile in der Ansicht separat definiert sind). Sie bieten auch Möglichkeiten zur Optimierung (obwohl nicht alle Datenbanken dies tun; ich bin nicht sicher, ob MySQL irgendwelche Optimierungen bietet, um Ansichten schneller zu machen oder nicht).

Wenn Sie die zugrunde liegenden Tabellen aktualisieren, werden Abfragen für die Ansicht diese Änderungen automatisch widerspiegeln.

2

Es ist einfach: Ansichten sind virtuelle Tabellen.

Ansichten basieren auf SELECT-Abfragen in "echten" Tabellen, aber der Unterschied besteht darin, dass Ansichten die Informationen nicht wie reale Tabellen speichern. Eine Ansicht bezieht sich nur auf die Tabellen und kombiniert sie so, wie SELECT sie angibt. Dies macht häufig verwendete Abfragen wesentlich vereinfacht.

Hier ist ein einfaches Beispiel für Sie. Angenommen, Sie haben eine Tabelle mit Mitarbeitern und eine Tabelle mit Abteilungen, und Sie möchten ihre Gehälter sehen. Zuerst können Sie eine Ansicht für die Gehälter erstellen.

Diese Abfrage listet den Namen des Mitarbeiters, seines Gehalts und seiner Abteilung auf und sortiert sie nach Gehältern in absteigender Reihenfolge. Wenn Sie dies getan haben, können Sie Abfragen verwenden wie:

SELECT * from SALARIES 

In einem größeren Maßstab könnte man einen Blick machen, die das durchschnittliche Gehalt der Mitarbeiter und Listen, die ein Gehalt hat berechnet, die als der durchschnittliche Gehalt weniger ist. Im echten Leben sind solche Anfragen viel komplexer.

1

Sie können sich die Ansicht als eine on-the-fly generierte Tabelle vorstellen. In Ihren Abfragen verhält es sich wie eine gewöhnliche Tabelle, aber anstatt auf der Festplatte gespeichert zu werden, wird es bei Bedarf aus einer SQL-Anweisung erstellt, die beim Erstellen einer Ansicht definiert wurde.

eine Ansicht zu erstellen, verwenden Sie:

CREATE VIEW first_names AS SELECT first_name FROM people WHERE surname='Smith' 

Sie können dann nur als ein gewöhnlicher Tisch diese Ansicht verwenden. Der Trick besteht darin, dass Sie beim Aktualisieren der Tabelle people die Ansicht first_names aktualisieren, da dies nur ein Ergebnis der SELECT-Anweisung ist.

Diese Abfrage:

SELECT * FROM first_names 

kehren alle Vornamen der Menschen in der Tabelle Personen namens Smith. Wenn Sie die People-Tabelle aktualisieren und die Abfrage erneut ausführen, werden die aktualisierten Ergebnisse angezeigt.

Grundsätzlich können Sie Ansichten durch verschachtelte SELECT-Anweisungen ersetzen. Allerdings Ansichten haben einige Vorteile:

  • Kürzere Abfragen - verschachtelte SELECT-Anweisungen die Abfrage länger
  • Verbesserte Lesbarkeit - wenn die Ansicht, die einen vernünftigen Namen hat, die Abfrage ist viel einfacher
  • bessere Geschwindigkeit zu verstehen - Die SELECT-Anweisung der Sicht wird in der Datenbank-Engine gespeichert und wird vor der Analyse analysiert. Daher muss sie nicht vom Client übertragen und immer wieder geparst werden. Caching und Optimierungen - Die Datenbank-Engine kann die Ansicht zwischenspeichern und ausführen andere Optimierungen
Verwandte Themen