So erstellen Sie Ansichten zum Abrufen und Bearbeiten von SQL-Daten

Eine der leistungsstärksten Funktionen von SQL ist seine Fähigkeit, Blick auf die Daten anzuzeigen, die unterschiedlich aus, wie die Datenbanktabellen speichern die Daten strukturiert sind. Der Aufbau einer Datenbank, die Prinzipien angefertigt nach klingen - einschließlich entsprechender Normalisierung - maximiert die Integrität der Daten.

Menu

Diese Struktur ist jedoch oft nicht der beste Weg, um die Daten zu suchen. Mehrere Anwendungen können die gleichen Daten verwenden, aber jede Anwendung eine unterschiedliche Betonung haben. Die Tabellen, die Sie als Quellen verwenden für Spalten und Zeilen in einer Ansicht sind die Basistabellen.

EIN WÄHLEN Aussage liefert immer ein Ergebnis in Form einer virtuellen Tabelle. EIN Aussicht ist eine besondere Art der virtuellen Tabelle. Sie können eine Ansicht von anderen virtuellen Tabellen unterscheiden, da die Metadaten der Datenbank die Definition einer Ansicht hält. Diese Unterscheidung gibt den Blick ein gewisses Maß an Ausdauer, die anderen virtuellen Tabellen nicht besitzen.

Sie können eine Ansicht manipulieren genauso wie eine echte Tabelle bearbeiten können. Der Unterschied besteht darin, dass die Daten einer Sicht keine unabhängige Existenz haben. Der Ausblick bezieht seine Daten aus der Tabelle oder Tabellen, aus denen Sie die Spalten der Ansicht ziehen. Jede Anwendung kann einen eigenen, einzigartigen Blick auf die gleichen Daten haben.

Angenommen, eine Datenbank enthält fünf Tabellen: CLIENT, TESTS, ANGESTELLTEN, ORDERS, und die Ergebnisse. Angenommen, die nationale Marketing-Manager, von dem sehen will Aufträge des Unternehmens heißt es kommen. Einige dieser Informationen liegt in der CLIENT Tabellen- einigen liegt in der Tabelle ORDERS.

Angenommen, der Qualitätskontrolleur will das Bestelldatum eines Tests an den Tag, an dem das letzte Testergebnis kam zu vergleichen. Erfordert Dieser Vergleich einige Daten aus der Tabelle Bestellungen und einige aus der Tabelle zur Folge hat. Um Bedürfnisse wie diese zu erfüllen, können Sie Ansichten erstellen, die Ihnen genau das, die Daten, die Sie in jedem Fall möchten.

aus Tabellen

Für die Marketing-Manager können Sie diese Ansicht erstellen.

bild0.jpg

Die folgende Anweisung erstellt die Ansicht des Marketing-Manager:

CREATE VIEW ORDERS_BY_STATE (Clientname, Land, Auftragsnummer) AS SELECT CLIENT.ClientName, Staat, OrderNumberFROM CLIENT, ORDERSWHERE CLIENT.ClientName = ORDERS.ClientName -

Die neue Sicht hat drei Säulen: Kundenname, Bundesland, und Bestellnummer. Kundenname erscheint sowohl in der KUNDE und ORDERS Tabellen und dient als Bindeglied zwischen den beiden Tabellen. Die neue Ansicht zieht Bundesland Informationen von der Client-Tabelle und nimmt die Bestellnummer aus der Tabelle Bestellungen. Im vorherigen Beispiel erklären Sie die Namen der Spalten explizit in der neuen Ansicht.

Beachten Sie, dass die Kundenname wird mit der Tabelle vorangestellt, die es enthält, aber es ist nicht erledigt Bundesland und Bestellnummer. Das ist, weil Bundesland nur in der Client-Tabelle angezeigt wird, und Bestellnummer erscheint nur in der Tabelle ORDERS, so gibt es keine Zweideutigkeit. Aber, Kundenname erscheint in Client- und ORDERS, so dass die zusätzliche Kennung benötigt wird.

Sie brauchen nicht diese Erklärung, wenn die Namen die gleichen wie die Namen der entsprechenden Spalten in den Quelltabellen sind. Das Beispiel zeigt eine ähnliche CREATE VIEW Aussage, mit der Ausnahme, dass die Ansicht Spaltennamen impliziert sind und nicht ausdrücklich erwähnt.

Mit einer Selektionsbedingung

Die Qualitätskontrolleur erfordert eine andere Auffassung von der Gefahr, dass die Marketing-Manager verwendet.

image1.jpg

Hier ist der Code, der die Ansicht erstellt:

CREATE VIEW REPORTING_LAGAS SELECT ORDERS.OrderNumber, Bestelldatum, DateReportedFROM ORDERS, RESULTSWHERE ORDERS.OrderNumber = RESULTS.OrderNumberAND RESULTS.PreliminaryFinal = 'F' -

Diese Ansicht enthält, um aktuelle Informationen aus der Tabelle Bestellungen und Berichts aktuelle Informationen aus der Ergebnistabelle. Nur Zeilen, die eine haben 'F' in dem PreliminaryFinal Spalte der Ergebnistabelle erscheinen in der BERICHTS LAG Aussicht. Beachten Sie auch, dass die Spaltenliste in der ORDERS_BY_STATE Ansicht ist optional. Das REPORTING_LAG Ansicht funktioniert ohne eine solche Liste in Ordnung.

Mit einem modifizierten Attribut

Das WÄHLEN Klauseln enthalten nur Spaltennamen. Sie können Ausdrücke in die umfassen WÄHLEN Klausel als auch. Angenommen VetLab des Besitzers einen Geburtstag hat und möchte, dass alle seine Kunden einen 10-Prozent-Rabatt zu geben, zu feiern. Er kann eine Ansicht auf der Grundlage der ORDERS-Tabelle erstellen und Die Tests Tabelle. Er kann diese Tabelle zu konstruieren, wie im folgenden Codebeispiel gezeigt:

CREATE VIEW BIRTHDAY (Client, Test, Bestelldatum, BirthdayCharge) AS SELECT Client, TestOrdered, Bestelldatum, StandardCharge * .9FROM ORDERS, TESTSWHERE TestOrdered = Testname -

Beachten Sie, dass die zweite Spalte in der GEBURTSTAG Aussicht - Test - entspricht dem TestOrdered Spalte in der Tabelle ORDERS, die sich auch auf das entspricht Testname Spalte in der Tabelle TESTS.

image2.jpg

Sie können eine Ansicht basierend auf mehreren Tabellen bauen, wie in den vorangegangenen Beispielen gezeigt wird, oder Sie können einen Blick auf der Grundlage einer einzigen Tabelle zu bauen. Wenn Sie nicht einige der Spalten oder Zeilen benötigen, erstellen Sie eine Ansicht, diese Elemente zu entfernen und dann mit der Aussicht beschäftigen, anstatt der ursprünglichen Tabelle. Dieser Ansatz stellt sicher, dass Benutzer nur die Teile der Tabelle sehen, die relevant sind.

Ein weiterer Grund für das Erstellen einer Ansicht ist Sicherheit zu bieten für die zugrundeliegenden Tabellen. Sie können einige Spalten in Tabellen zur Einsicht machen wollen, während andere zu verstecken. Sie können eine Ansicht erstellen, die nur die Spalten enthält, die Sie zur Verfügung stellen möchten und dann einen breiten Zugang zu dieser Ansicht gewähren, während der Zugriff auf die Tabellen zu beschränken, aus denen Sie die Ansicht ziehen.

Menü