Ansichten
Wie die meisten relationalen Datenbanken unterstützt PostgreSQL die Ansichten , jedoch sind die Ansichten in PostgreSQL im Gegensatz zu SQL Server und MySQL nicht automatisch aktualisierbar, ohne dass auf die Verwendung von Triggern des Typs INSTEAD OF zurückgegriffen werden muss. Dieses Formular mit dem Einsatz von TRIGGERS ist angepasst und liegt näher am Standard.
Dies hat den Vorteil, dass wir die Ansichten und die Art und Weise, in der die Tabellen mit den Informationen aktualisiert werden, besser kontrollieren können.
In der folgenden Abbildung sehen wir ein Beispiel für die Erstellung einer Ansicht in PostgreSQL mithilfe der speziellen Funktionen:
Lassen Sie uns die nummerierten Punkte des Beispielbildes erklären, damit wir uns dem Thema nähern können.
- Behandeln Sie den Löschvorgang mit der DELETE-Anweisung . Löschen Sie nur den Datensatz, der demselben Schlüssel entspricht wie der alte Datensatz.
- Verarbeitet Dateneinsätze
- Nur aktualisieren, wenn mindestens eine der Spalten in der Faktentabelle geändert wurde.
- Um Aktualisierungen zu verarbeiten, bestimmen Sie anhand des ALTEN oder alten Datensatzes, welche Datensätze gelöscht oder mit den NEUEN oder neuen Datensatzdaten aktualisiert werden sollen.
Dann können wir unseren Trigger wie folgt erstellen, um ihn mit der bereits erstellten Ansicht zu verknüpfen.
CREATE TRIGGER trip_01_vw_facts_ins_upd_del STATT EINFÜGEN ODER AKTUALISIEREN ODER LÖSCHEN AUF census.vw_facts FÜR JEDES REIHEN-AUSFÜHRUNGSVERFAHREN census.trig_vw_facts_ins_upd_del ();
Auf diese Weise erhalten die Tabellen, aus denen sich die Ansicht zusammensetzt, die Daten, wenn wir sie einfügen, ändern oder löschen. Sehen wir uns dazu eine Beispielabfrage an:
UPDATE census.vw_facts SET yr = 2012 WHERE yr = 2011 AND tract_id = '25027761200';
Was würde uns ein erfolgreiches Ergebnis bringen: Abfrage erfolgreich zurückgegeben: 51 Zeilen betroffen, 21 ms Ausführungszeit.
Fenster
Die Fenster sind eine von PostgreSQL unterstützte ANSI-SQL-Standardfunktion. Dadurch können wir die Daten anzeigen und verwenden, die über den aktuellen Datensatz hinausgehen. Ohne diese Funktionen müssten JOINS und Sub-Querys ausgeführt werden, um die Daten und Ressourcen eines anderen zu erhalten viel komplexer Weg.
Das folgende Beispiel besteht aus dem Ermitteln des Durchschnittswerts einer Spalte in einer Tabelle. Sehen Sie sich das Beispiel in der folgenden Abbildung an:
Wie wir mit der AVG-Funktion sehen konnten, können wir die Werte aller Felder abrufen, ohne JOINS ausführen zu müssen, und mit der OVER- Funktion können wir diese in eine Window- Funktion konvertieren. Wenn PostgreSQL eine Funktion dieses Typs erkennt, werden alle Zeilen durchsucht, die der WHERE-Klausel entsprechen, um das Ergebnis zu erhalten.
Damit haben wir das Tutorial abgeschlossen, in dem wir etwas mehr über PostgreSQL lernen konnten, das die Standardfunktionen von ANSI-SQL handhabt und nachvollzieht, wie es seinen eigenen Stil hinzufügt, um die Nützlichkeit dieser Funktionen zu erweitern.