SQL Grundkurs 1: Die Sprache erlernen

Erzeugen einer Sicht

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Lernen Sie in diesem Video, wie Sie mit der Anweisung CREATE VIEW eine Sicht erzeugen.

Transkript

Sehen Sie in diesem Video, wie Sie mit entsprechenden DDL-Anweisungen eine "Sicht" erzeugen. Sichten sind ja "SELECT-Statements", die als Objekte in der Datenbank für spätere Wiederverwendung gespeichert werden. Sichten werden mit der Anweisung "Create View" erzeugt und sie bekommen so wie eine Tabelle einen Namen, zum Beispiel "Avi.Garten.S", danach kommt die "SELECT-Anweisung", die die Daten liefert, die über die "View" zurück gegeben werden soll. Z.B. möchte ich aus der Artikel-Tabelle die "Artikelnummer", die "Bezeichnung", den "Lieferanten", den "Einkaufspreis", den "Verkaufspreis" und die "Mehrwertsteuer" auswählen. Über die "Where-Klausel" filtere ich, dass diese View oder Sicht nicht alle Artikel, sondern nur jene der Artikelgruppe "Garten" mit dem Kürzel "GA" enthält. Jetzt kann natürlich dieses SELECT-Statement nicht nur Spalten enthalten, sondern kann Berechnungen enthalten, kann "Joins" enthalten, "Gruppierungen", im Großen und Ganzen das, was ein SELECT-Statement hergibt, können Sie mit ganz wenigen Ausnahmen hier verwenden. Ich ergänze nun eine weitere Spalte, eine berechnete Spalte, z.B. möchte ich den "Deckungsbeitrag" mit ausgeben und zwar als Differenz von "Verkaufspreis" minus dem "Einkaufspreis". Eine Sache sollten Sie allerdings berücksichtigen: Sie erzeugen hier ein "Objekt". Dieses Objekt wird nach dem Erzeugen wie eine Tabelle verwendet. Ich habe jetzt für diese Spalte, für diese berechnete Spalte, keinen Aliasnamen definiert. Sehen wir uns gleich an wie sich das auswirkt. Ich erzeuge diese View und es hat funktioniert. Wie kann ich eine View nun verwenden? Eine View wird über ein normales SELECT-Statement verwendet, so wie eine Tabelle auch, also mit "SELECT*from Avi.Garten" kann ich den kompletten Inhalt einer View ausgeben. Jetzt sehen wir bei der letzten Spalte, dass aus meiner Sicht etwas Unschöne passiert ist: Wir haben keinen Aliasnamen definiert und deshalb hat das System quasi den "Ausdruck" als Aliasnamen verwendet oder als Spaltennamen beim Erzeugen der View besser gesagt. Das ist eher unschön, denn da sind Sonderzeichen enthalten. Das ist nicht nur optisch ein Nachteil, sondern auch praktisch. Wenn Sie jetzt auf diese Spalte zugreifen müssen, dann könnten Sie zwar hier zufälligerweise so schreiben: "Verkauf minus Einkaufspreis" und das funktioniert sogar, aber nur deshalb, weil diese beiden Spalten hier enthalten sind. Das ist nicht der "Ausdruck". Wenn Sie jetzt auf diesen "Ausdruck" hier zugreifen wollten, dann müssten Sie ja wie mit "Quoted-Identifier" dies unter doppelte Hochkomma setzen, damit das funktioniert, also jetzt hätte ich auf diese Spalten zugegriffen. Also vor allem, wenn das komplexere Anweisungen sind, das macht überhaupt gar keinen Sinn so zu arbeiten. Deshalb unbedingt einen Aliasnamen vergeben. Oracle und MSSQL-Server würden diese Anweisung auf diese Art gar nicht zulassen, wenn Sie einen Ausdruck ohne einen Aliasnamen verwenden. Das heißt, ich kopiere das in den Editor vom Microsoft SQL-Server und führe diese Anweisung aus: Hier haben wir schon die Fehlermeldung "Das Erzeugen ist ungültig", da für die siebte Spalte kein Name angegeben worden ist. Genau das sagt der Fehler, also hier ist es gar nicht zulässig. MySQL, haben wir gesehen, lässt es zu und die Lösung ist aus meiner Sicht etwas unsauber. Also werde ich diese View noch einmal löschen. Mit der Anweisung "Drop View" kann ich das realisieren, das entspricht also dem Löschen einer Tabelle, auch mit "Drop Table" "Drop View", das ist hier natürlich analog zu sehen. Ich habe jetzt diese View gelöscht und werde das ausbessern und werde einen Aliasnamen vergeben; "SDB" für Deckungsbeitrag zum Beispiel. Nun lege ich diese View erneut an und erstellen sie erneut und geben uns den Inhalt dieser View aus. Jetzt sehen wir das dieser Aliasname hier verwendet worden ist. Was ist generell für die Verwendung von Aliasnamen zu sagen? Wenn Sie in einer View Aliasnamen definieren, dann haben diese absolute Außenwirkung. Das heißt, beim Zugriff auf die View können nur diese verwendet werden. Um Ihnen das zu zeigen, werde ich noch einmal diese View löschen und leicht modifiziert neu erstellen. Ich kopiere mir dazu diese "Anweisung" und werde jetzt hier zum Beispiel für die Artikelnummer als Nummer einen Aliasnamen definieren. Oder für den Lieferanten, also die Lieferantennummer, als Lieferant, ich möchte das ausgeschrieben verwenden. Uns jetzt erzeuge ich die View wieder erneuert. Wir sehen das hat funktioniert. Wenn ich jetzt auf diese View zugreife, dann sehen wir, dass diese Aliasnamen voll durchgreifen. Das heißt, nach außen heißt diese Spalte jetzt "Nummer" und "Lieferant" und nicht "Artnr" und "Lief". Das bedeutet, wenn ich darauf zugreife, muss ich natürlich diese Aliasnamen verwenden. Wenn ich jetzt hier sage "Artikelnummer, Bezeichnung und Verkaufspreis from Avi.Garten" und führe diese Anweisung aus, kriege ich eine Fehlermeldung: "Unbekannte Spalte": "Art.nr unknown colum". Das heißt, ich kann hier ausschließlich über den definierten Aliasnamen zugreifen, der hat hier absolute Außenwirkung. So funktioniert das dann auch. Sie können also in der Definition einer View Aliasnamen verwenden, wenn Sie möchten. Hierzu gibt es noch eine weitere "Syntax-Variante". Ich lösche die View noch einmal um sie ein weiteres Mal neu zu erstellen, kopiere mir diese Anweisung hier ans Ende und mache etwas mehr Platz damit Sie das besser sehen können. Wir möchten jetzt für alle Spalten einen Aliasnamen definieren und dazu gibt es eine eigene Syntax-Variante, nämlich Sie können hier zwischen der "Create-Klausel" und dem Schlüsselwort in runder Klammer die Spaltennamen angeben. Wenn Sie das tun, müssen Sie das allerdings für alle Spalten tun. Das empfiehlt sich dann, wenn Sie sehr viel Aliasnamen definieren möchten, weil es übersichtlicher ist. Das heißt, ich benenne z.B. "Nummer", "Bezeichnung", "Lieferant", für den Einkaufspreis nehme ich "EK", für den Verkaufspreis "VK" und jetzt möchte ich zum Beispiel für die Spalte "Mehrwertsteuer" keinen Aliasnamen definieren. Wenn ich aber diese Syntax-Variante wähle, muss ich für jede Spalte einen Wert angeben. Das heißt, es bleibt mir jetzt nichts anderes übrig als den ursprünglichen Namen wieder zu vergeben. Das Gleiche könnte ich zum Beispiel bei der Bezeichnung machen und ich sage: Den möchte ich eigentlich beibehalten. Zum Abschluss hier noch "DB". Diese Aliasnamen hier unten innerhalb der SELECT-Klausel kann ich natürlich entfernen, die sind jetzt wirkungslos. Also auch hier. Kontrolliere noch einmal: 1,2,3,4,5,6,7 Spalten haben wir; 1,2,3,4,5,6,7 Aliaswerte. Das passt also zusammen und ich kann diese Sicht, diese View hier erneut erstellen. Das hat funktioniert. Wieder greife ich auf diese View zu, dieses Mal bewusst mit "SELECT*", um hier alle Spalten angezeigt zu bekommen, um zu sehen das all diese Aliasnamen hier verwendet worden sind. Sie haben in diesem Video gesehen, wie Sie mit der Anweisung "Create View" eine Sicht erzeugen können. Eine "Sicht" ist ein "SQL-Statement", ein "SELECT-Statement", das physisch in der Datenbank gespeichert wird. Damit können Sie sozusagen Zwischenergebnisse generieren. Sie können komplexe Anweisungen speichern, damit Sie danach einfach über ein simples "SELECT" darauf zugreifen können. Achten Sie darauf, wenn Sie "Ausdrücke" verwenden innerhalb des SELECT-Statements, dass sie auch Aliasnamen definieren, entweder direkt für die betroffene Spalte oder generell vorweg in der Definition, der Sicht für alle Spalten gemeinsam.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!