Was ist CTE in Postgresql?

Was ist CTE in Postgresql?

CTE in PostgreSQL steht für die gemeinsame Expression des gemeinsamen Tabellen. Es ist eine Möglichkeit, die Ergebnisse einer Postgresql -Abfrage vorübergehend zu halten. Manchmal schreiben wir äußerst komplexe Fragen, die sehr schwer zu interpretieren sind. In solchen Fällen lässt die Verwendung von CTE unsere Fragen einfacher und lesbarer aussehen. Mit Hilfe dieses Artikels beabsichtigen wir, Ihnen die Verwendung von CTE in PostgreSQL in Windows 10 beizubringen.

Beispiel: Verwenden von CTE in PostgreSQL:

Wir werden CTE in PostgreSQL in Windows 10 im folgenden Beispiel verwenden:

Schritt 1: Postgresql -Tabellenerstellung:

Zunächst werden wir zwei PostgreSQL -Tabellen erstellen, um CTE später zu verwenden, um die gewünschten Ergebnisse aus diesen Tabellen zu extrahieren. In dieser Illustration möchten wir mit einer Beziehung zwischen Ärzten und Patienten arbeiten. Daher erstellen wir eine Tabelle mit dem Namen "Doktor" und die andere als "Patient" namens "Patient".

Zum Erstellen der Tabelle "Doktor" werden wir die folgende PostgreSQL -Abfrage ausführen:

# Tabelle Doktor erstellen (doc_id serieller Primärschlüssel, doc_name varchar (255) nicht null);

Diese Abfrage erstellt die Tabelle "Doktor" mit zwei Attributen, ich.e. Doc_id und doc_name. Sie können auch den gesamten Tabellenerstellungsprozess aus dem unten gezeigten Bild sehen:

Zum Erstellen der Tabelle „Patienten“ werden wir nun die folgende PostgreSQL -Abfrage ausführen:

# Tabelle Patient erstellen (pat_id serieller Primärschlüssel, pat_name varchar (255) nicht null, pat_temp int nicht null, doc_id int nicht null);

Diese Abfrage erstellt die Tabelle "Patienten" mit vier Attributen, ich.e. PAT_ID, PAT_NAME, PAT_TEMPERATION (dies repräsentiert die Körpertemperatur des Patienten) und doc_id (dies ist dieselbe doc_id, die wir in der Tabelle "Doktor" deklariert haben. Hier wird es als Fremdschlüssel verwendet, um anzugeben, welche Ärzte jeden Patienten behandelt haben. Sie können auch den gesamten Tabellenerstellungsprozess aus dem unten gezeigten Bild sehen:

Schritt 2: Aufzeichnungen Insertion in PostgreSQL -Tabellen:

Nachdem wir diese Tabellen erstellt haben, müssen wir eine ausreichende Anzahl von Datensätzen in sie einfügen, um diese Datensätze zu verwenden, um die Verwendung von CTE später in Postgresql zu demonstrieren. Um Aufzeichnungen in die Tabelle "Doktor" einzuführen, werden wir die folgende PostgreSQL -Abfrage ausführen:

# In Arztwerte einfügen (1, 'Sarah'), (2, 'affan'), (3, 'irtiza'), (4, 'hinina'), (5, 'Naila');

Diese Abfrage fügt einfach die Aufzeichnungen von fünf verschiedenen Ärzten in die Tabelle „Doktor“ ein, wie im Bild unten gezeigt:

Um Aufzeichnungen in die Tabelle "Patienten" einzuführen, werden wir die folgende PostgreSQL -Abfrage ausführen:

# In die Patientenwerte einfügen (1, 'Saba', 99, 1), (2, 'Sidra', 100, 1), (3, 'Hamza', 100, 2), (4, 'Aslam', 98, 2), (5, 'Fizza', 101, 3), (6, 'Iqra', 102, 3), (7, 'Sadia', 100, 4), (8, 'Sobia', 99, 4) (9, 'Salman', 100, 5), (10, 'Jawad', 103, 5);

Diese Abfrage fügt die Datensätze von 10 verschiedenen Patienten in die Tabelle „Patienten“ ein, wie im folgenden Bild gezeigt:

Notiz: Sie fragen sich vielleicht, warum wir die Anzahl der Aufzeichnungen der Tabelle "Patienten" mehr als den "Doktor" beibehalten haben. Nun, ein einzelner Arzt kann sich gleichzeitig mit mehreren Patienten kümmern. Dies dient jedoch nur zur Demonstration. Sie können die Anzahl der Datensätze dieser beiden Tabellen gleich halten, wenn Sie dies wünschen.

Schritt 3: Zeigen Sie die neu eingefügten Datensätze in Postgresql -Tabellen an:

Bevor wir weiter fortfahren, werden wir schnell die in unsere zwei Postgresql -Tabellen eingefügten Datensätze anzeigen. Für die Tabelle "Doktor" werden wir die folgende PostgreSQL -Abfrage ausführen:

# Wählen Sie * vom Doktor;

Sie können alle Datensätze der Tabelle "Doktor" aus dem unten gezeigten Bild sehen:

Für die Tabelle "Patienten" werden wir nun die folgende PostgreSQL -Abfrage ausführen:

# Wählen Sie * vom Patienten aus;

Sie können alle Datensätze der Tabelle „Patienten“ aus dem unten gezeigten Bild sehen:

Schritt 4: Verwenden Sie CTE, um alle Datensätze einer PostgreSQL -Tabelle anzuzeigen:

Dieser Schritt zeigt eine relativ einfache Verwendung von CTE in PostgreSQL. Wir möchten alle Datensätze eines unserer Tabellen in einen gemeinsamen Tischausdruck speichern und ihn dann einfach auf der Konsole anzeigen. Die Abfrage, die wir für diesen Zweck ausführen werden, wird unten zitiert:

# Mit CTE_PATIENT AS (SELECT PAT_ID, PAT_NAME, PAT_TEMP, DOC_ID VON Patient) Wählen Sie * aus cte_patient;

Jetzt werden wir Ihnen diese ganze Abfrage erklären, während wir alle seine Komponenten diskutieren. Dem Namen des gemeinsamen Tabellenausdrucks gehen immer das Schlüsselwort „mit“ vor und fordert das Schlüsselwort „AS“ vor. Dies bedeutet, dass der Name für unseren CTE in diesem speziellen Fall "CTE_PATIENT" ist. Nach dem Schlüsselwort "AS" geben wir die gesamte Abfrage an, deren Ergebnisse wir in unserem gemeinsamen Tabellenausdruck gespeichert werden möchten. In diesem Beispiel möchten wir einfach alle Datensätze auswählen, aus denen alle Attribute der Tabelle „Patienten“ bestehen, und sie dann in unserem CTE speichern. Danach haben wir die Anweisung "Select" verwendet, um den Inhalt dieses CTE auf unserer Konsole anzuzeigen. Diese Abfrage enthält alle zehn Datensätze aus unserer "Patienten" -Tabelle, speichert sie vorübergehend in CTE_PATIENT und zeigt dann den Inhalt von cte_patient auf der Konsole an, wie im folgenden Bild gezeigt:

Schritt 5: Verwenden Sie CTE mit der Klausel "Wo" in PostgreSQL:

Jetzt werden wir zu einer relativ komplexen Verwendung von CTE in PostgreSQL, ich.e. Wir werden CTE mit der Klausel "Wo" in Postgresql verwenden. In diesem modifizierten Beispiel wollen wir die Temperatur aller Patienten überprüfen und dann die Namen und IDs nur derjenigen Patienten mit Fieber zeigen. Die Abfrage, die diesen Zweck erfüllt, lautet wie folgt:

# Mit CTE_PATIENT AS (SELECT PAT_ID, PAT_NAME, (Fall, wenn pat_temp 100 dann 'Fever' Ende) Temperatur vom Patienten aus Wählen Sie pat_id, pat_name, Temperatur von cte_patient wob

In dieser Abfrage haben wir die Anweisung „Fall“ zur Temperaturvariable verwendet. Die Hauptbedingung für diese Aussage ist, dass, wenn die Temperatur des Patienten unter 100 oder gleich 100 liegt, sie als normal angesehen wird, während der Patient bei mehr als 100 Fieber hat. Danach haben wir einfach die Auswahl an "SELECT" verwendet, um den pat_id, pAT_NAME und die Temperatur aller Patienten aus unserem gemeinsamen Tabellenausdruck anzuzeigen, die Fieber haben. Darüber hinaus haben wir unsere Ergebnisse auch alphabetisch gemäß dem Namen des Patienten bestellt, wie im Bild unten gezeigt:

Wenn Sie die Namen und IDs aller Patienten auf der Konsole, deren Körpertemperatur normal ist, anzeigen möchten, müssen Sie die oben genannte Abfrage leicht wie folgt ändern:

# Mit CTE_PATIENT AS (SELECT PAT_ID, PAT_NAME, (Fall, wenn pat_temp 100 dann 'Fever' Ende) Temperatur von Patient auswählen) pat_id, pat_name, Temperatur von CTE_PATIENT WHERE Temperatur = 'Normal' Order von pat_name;

Alle Patienten aus unserer „Patienten“ -Tabelle, deren Körpertemperatur normal ist, sind im folgenden Bild gezeigt:

Abschluss:

In diesem Leitfaden wurde über die Verwendung von CTE in Postgresql in Windows 10 gesprochen. Um diese Verwendung zu erläutern, haben wir zuerst ein einfaches Beispiel erstellt und dann eine gewisse Komplexität eingeführt, damit die Leser besser verstehen können, wie CTE mit Postgresql -Tabellen funktioniert. Sobald Sie dieses umfassende Beispiel gründlich durchlaufen haben, können Sie zusammen mit einigen anderen technischen Details die grundlegende Syntax von CTEs in PostgreSQL lernen. Danach können Sie die CTEs effektiv verwenden, damit Ihre Abfragen einfacher und lesbar aussehen.