Einführung in Ansichten in PostgreSQL

Bilal Shahid 20 Juni 2023
  1. Ansichten in PostgreSQL
  2. Erstellen Sie eine Ansicht
  3. Zeigen Sie eine Ansicht an
  4. Aktualisieren Sie eine Ansicht
  5. Löschen Sie eine Ansicht
Einführung in Ansichten in PostgreSQL

Obwohl sie von Vorteil sind, haben Benutzer manchmal Probleme mit Ansichten in PostgreSQL. Dies wird jedoch keine Probleme mehr verursachen. Zunächst beschreiben wir alles, was Sie wissen müssen, um Ansichten in PostgreSQL zu erstellen, zu löschen und zu aktualisieren.

Ansichten in PostgreSQL

Eine Ansicht sieht aus wie jede andere Tabelle in einer Datenbank. Der Unterschied besteht jedoch darin, dass man den Inhalt einer vorhandenen Datenbank extrahieren und einem Benutzer nur diese Daten anzeigen kann.

Infolgedessen bleiben alle sensiblen oder irrelevanten Informationen in der ursprünglichen Datenbank und vor der Öffentlichkeit verborgen.

Erstellen Sie eine Ansicht

Das Erstellen einer Ansicht mag schwierig erscheinen, aber PostgreSQL macht es unglaublich einfach. Dazu müssen Sie die Anweisung CREATE VIEW zusammen mit einer Bedingung verwenden, die mit jeder Abfrage angewendet werden kann.

Betrachten Sie das folgende Schema:

CREATE TABLE users(
    user_id int PRIMARY KEY,
    user_name VARCHAR (100) UNIQUE,
    email VARCHAR (300) NOT NULL
);

INSERT INTO users(user_id, user_name, email)
VALUES (1, 'name', 'email');

Nehmen wir an, Sie wollten dem Benutzer eine Tabelle anzeigen, in der nur die user_id und der user_name sichtbar sind. Um dies zu erreichen, können Sie den folgenden Code verwenden:

CREATE VIEW view_name AS
SELECT user_id, user_name
FROM users;

Es wird eine Ansicht erstellt, die nur die user_id und den user_name aus der users-Tabelle anzeigt. Um Daten mit view_name abzurufen, müssen wir den SELECT-Befehl wie folgt verwenden:

select * from view_name;

Ausgang:

 user_id | user_name 
---------+-----------
       1 | name

Wenn Sie möchten, können Sie auch zusätzliche Bedingungen hinzufügen. Wenn Sie beispielsweise nur eine Ansicht wünschen, die einen bestimmten Benutzer anzeigt, können Sie Folgendes versuchen:

CREATE VIEW view_name AS
SELECT user_id, user_name
FROM users
WHERE user_id= 123;

Diese Ansicht würde nur aus den Benutzern bestehen, deren user_id 123 ist.

Hinweis: Eine Ansicht kann nicht ohne eine entsprechende Tabelle in PostgreSQL erstellt werden. Erstellen Sie immer eine Tabelle vor einer Ansicht.

Zeigen Sie eine Ansicht an

Das Anzeigen einer Ansicht ist fast so einfach wie das Erstellen einer Ansicht. Wenn wir eine Tabelle anzeigen möchten, verwenden wir häufig die folgende Syntax:

SELECT * FROM users;

Auf die gleiche Weise verwenden wir eine ähnliche Syntax, wenn wir eine Ansicht anzeigen möchten.

SELECT * FROM view_name;

Hinweis: Stellen Sie während der Erstellung sicher, dass jeder Ansichtsname eindeutig ist, genau wie Tabellennamen.

Zeigen Sie den Code einer Ansicht an

Manchmal verlieren wir in großen Datenbanken oder langen Codezeilen den Code einer Ansicht und können nicht darauf zugreifen. PostgreSQL verfügt jedoch über Befehle, mit denen Sie den Code schnell anzeigen können, ohne durch mehrere Zeilen scrollen zu müssen.

Hier sind einige Möglichkeiten, wie Sie dies erreichen können:

  • SELECT-Klausel – Dies ist eine der einfacheren Methoden, da die meisten Benutzer mit der SELECT-Klausel vertraut sind. So können Sie es verwenden:

    SELECT definition FROM pg_views
    WHERE viewname = 'view_name';
    

    Einige Versionen akzeptieren dies auch:

    SELECT view_definition FROM information_schema.views
    WHERE table_name = 'view_name';
    

    Es ist wichtig zu beachten, dass dieser Befehl eine umgeschriebene Version Ihres ursprünglichen Codes bereitstellt, der zum Erstellen der Ansicht verwendet wurde.

  • pg_get_viewdef - Obwohl dieser Befehl gut funktioniert, fanden viele Benutzer ihn schwierig zu implementieren. Wenn dies auch für Sie das Szenario ist, versuchen Sie es wie folgt:

    SELECT pg_get_viewdef('view_name', true);
    

    Eine andere Methode besteht darin, einen Namen in regclass umzuwandeln. Hier sind einige Möglichkeiten, wie wir es verwenden können:

    SELECT pg_get_viewdef('view_name'::regclass);
    
  • \d+ viewname - Einige der obigen Befehle können etwas schwierig zu merken sein, obwohl sie gut funktionieren. Wenn Sie etwas Schnelles und Effektives bevorzugen, versuchen Sie stattdessen diesen Befehl.

    Wenn Sie weitere Funktionen wie diese ausprobieren möchten, versuchen Sie es mit der Eingabe von \? in der Kommandozeile. Es zeigt dann eine Reihe von Befehlen an, mit denen Sie herumspielen können, um weitere Funktionen in PostgreSQL zu entdecken.

Aktualisieren Sie eine Ansicht

Wenn Sie den Namen einer Ansicht kennen, können Sie sie ständig aktualisieren, selbst wenn Sie nicht auf den ursprünglichen Code zugreifen können, der für die Erstellung verwendet wurde.

Dies kann mit der UPDATE-Klausel erreicht werden. Erstellen Sie jedoch zunächst eine Ansicht mit einer vorhandenen Tabelle, wie zuvor erläutert. Bitte merken Sie sich den Namen der Ansicht, sonst können Sie nicht darauf zugreifen. Versuchen Sie Folgendes, um Ihre Ansicht zu aktualisieren:

CREATE OR REPLACE VIEW view_name AS 
SELECT * FROM name_of_the_table;

Sie können die letzte Zeile dieses Codes durch eine beliebige Abfrage ersetzen, die Ihnen hilft, Ihre bevorzugte Ansicht zu generieren. Wenn Sie den Namen Ihrer Ansicht ändern möchten, können Sie dies mit dem folgenden Code tun:

ALTER VIEW view_name
RENAME TO new_name;

Sie können eine Ansicht auch aktualisieren, indem Sie die vorhandene löschen und mit den erforderlichen Änderungen neu erstellen. Der Löschvorgang wurde im Folgenden erläutert.

Löschen Sie eine Ansicht

Es gibt mehrere Gründe, warum man eine Ansicht löschen möchte. Vielleicht gibt es zum Beispiel so viele Aktualisierungen, dass es besser ist, es noch einmal zu machen, oder vielleicht wird es nicht mehr benötigt.

Was auch immer die Ursache sein mag, PostgreSQL hat es unglaublich einfach gemacht, eine Ansicht zu löschen. Sie können dies mit dem folgenden Code tun:

DROP VIEW IF EXISTS view_name;

Hier ist die IF EXISTS-Klausel nicht obligatorisch, aber empfehlenswert. Dadurch kann der Code auch dann ausgeführt werden, wenn der Ansichtsname nicht vorhanden ist.

Es kann jedoch ein Problem sein, wenn Sie beim Auflisten des Ansichtsnamens in einem langen Codeabschnitt einen Fehler machen, da dies das Löschen verhindern und Fehler in der Datenbank verursachen könnte. Die Verwendung hängt also von der Art Ihrer Aufgabe ab.

Das ist alles, was Sie wissen müssen, um Ansichten in PostgreSQL in Bezug auf das Erstellen, Aktualisieren, Löschen, Anzeigen und Zugreifen auf Erstellungscodes zu verwenden. Wir hoffen, dass Sie nun seine Funktionen im Detail verstehen und leicht anwenden können.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub