PostgreSQL - ANSICHTEN
Ansichten sind Pseudotabellen. Das heißt, sie sind keine echten Tische; erscheinen dennoch als gewöhnliche Tabellen zu SELECT. Eine Ansicht kann eine Teilmenge einer realen Tabelle darstellen und bestimmte Spalten oder bestimmte Zeilen aus einer normalen Tabelle auswählen. Eine Ansicht kann sogar verknüpfte Tabellen darstellen. Da Ansichten separate Berechtigungen zugewiesen werden, können Sie sie verwenden, um den Tabellenzugriff einzuschränken, sodass die Benutzer nur bestimmte Zeilen oder Spalten einer Tabelle sehen.
Eine Ansicht kann alle Zeilen einer Tabelle oder ausgewählte Zeilen aus einer oder mehreren Tabellen enthalten. Eine Ansicht kann aus einer oder mehreren Tabellen erstellt werden. Dies hängt von der geschriebenen PostgreSQL-Abfrage ab, um eine Ansicht zu erstellen.
Mit Ansichten, bei denen es sich um virtuelle Tabellen handelt, können Benutzer Folgendes tun:
Strukturieren Sie Daten so, dass Benutzer oder Benutzerklassen sie natürlich oder intuitiv finden.
Beschränken Sie den Zugriff auf die Daten so, dass ein Benutzer nur begrenzte Daten anstelle einer vollständigen Tabelle sehen kann.
Fassen Sie Daten aus verschiedenen Tabellen zusammen, mit denen Berichte erstellt werden können.
Da Ansichten keine gewöhnlichen Tabellen sind, können Sie möglicherweise keine DELETE-, INSERT- oder UPDATE-Anweisung für eine Ansicht ausführen. Sie können jedoch eine REGEL erstellen, um dieses Problem bei der Verwendung von DELETE, INSERT oder UPDATE in einer Ansicht zu beheben.
Ansichten erstellen
Die PostgreSQL-Ansichten werden mit dem erstellt CREATE VIEWErklärung. Die PostgreSQL-Ansichten können aus einer einzelnen Tabelle, mehreren Tabellen oder einer anderen Ansicht erstellt werden.
Die grundlegende CREATE VIEW-Syntax lautet wie folgt:
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
Sie können mehrere Tabellen in Ihre SELECT-Anweisung auf sehr ähnliche Weise aufnehmen, wie Sie sie in normalen PostgreSQL SELECT-Abfragen verwenden. Wenn das optionale Schlüsselwort TEMP oder TEMPORARY vorhanden ist, wird die Ansicht im temporären Bereich erstellt. Temporäre Ansichten werden am Ende der aktuellen Sitzung automatisch gelöscht.
Beispiel
Beachten Sie, dass die COMPANY- Tabelle die folgenden Datensätze enthält:
id | name | age | address | salary
----+-------+-----+------------+--------
1 | Paul | 32 | California | 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall | 45000
7 | James | 24 | Houston | 10000
Im Folgenden finden Sie ein Beispiel zum Erstellen einer Ansicht aus der COMPANY-Tabelle. Diese Ansicht würde verwendet, um nur wenige Spalten aus der COMPANY-Tabelle zu haben -
testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM COMPANY;
Jetzt können Sie COMPANY_VIEW auf ähnliche Weise abfragen wie eine tatsächliche Tabelle. Es folgt das Beispiel -
testdb=# SELECT * FROM COMPANY_VIEW;
Dies würde das folgende Ergebnis erzeugen -
id | name | age
----+-------+-----
1 | Paul | 32
2 | Allen | 25
3 | Teddy | 23
4 | Mark | 25
5 | David | 27
6 | Kim | 22
7 | James | 24
(7 rows)
Ansichten löschen
Verwenden Sie zum Löschen einer Ansicht einfach die Anweisung DROP VIEW mit der view_name. Die grundlegende DROP VIEW-Syntax lautet wie folgt:
testdb=# DROP VIEW view_name;
Der folgende Befehl löscht die Ansicht COMPANY_VIEW, die wir im letzten Abschnitt erstellt haben:
testdb=# DROP VIEW COMPANY_VIEW;