Einführung
PostgreSQL ist ein relationales Open-Source-Datenbankmanagementsystem (RDBMS). Das Datenbanksystem bewältigt problemlos verschiedene Workloads und unterstützt die meisten Betriebssysteme. Seine Erweiterbarkeit und SQL-Kompatibilität machen PostgreSQL zu einem weit verbreiteten RDBMS.
Die SELECT
-Anweisung ist der am häufigsten verwendete DML-Befehl (Data Manipulation Language) in PostgreSQL.
In diesem Tutorial lernen Sie, die PostgreSQL-SELECT-Anweisung mit ihrer vollständigen Syntax und Beispielen zu verwenden.
Voraussetzungen
- PostgreSQL installiert und eingerichtet.
- Eine Datenbank, an der gearbeitet werden kann (siehe So erstellen Sie eine Datenbank.)
PostgreSQL-SELECT-Anweisung
Die PostgreSQL-SELECT
-Anweisung ruft Daten aus einer oder mehreren Tabellen in einer Datenbank ab und gibt die Daten in einer Ergebnistabelle zurück, die als Ergebnismenge bezeichnet wird. Verwenden Sie SELECT
-Anweisung, um eine oder mehrere Zeilen zurückzugeben, die den angegebenen Kriterien aus den Datenbanktabellen entsprechen.
Die SELECT
Die Anweisung ist die komplexeste Anweisung in SQL mit vielen optionalen Schlüsselwörtern und Klauseln. In den folgenden Abschnitten wird SELECT
erläutert Syntax im Detail.
PostgreSQL-SELECT-Syntax
Die einfachste Form des SELECT
Anweisungssyntax ist:
SELECT expressions
FROM tables
WHERE conditions;
- Die
expressions
sind alle gewünschten Spalten und Felder im Ergebnis. - Die
tables
Syntax ist die Tabelle oder Tabellen, aus denen Sie die Ergebnisse extrahieren möchten. - Die
conditions
stellen die Anforderungen dar, die erfüllt sein müssen, um die Datensätze auszuwählen.
Ein Beispiel für das vollständige SELECT
Anweisungssyntax ist:
SELECT [ ALL | DISTINCT | DISTINCT ON (distinct_expressions) ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS FIRST | NULLS LAST ]]
[LIMIT [ number_rows | ALL]
[OFFSET offset_value [ ROW | ROWS ]]
[FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY]
[FOR { UPDATE | SHARE } OF table [ NOWAIT ]];
Wir werden alle Parameter im folgenden Abschnitt erklären.
PostgreSQL-SELECT-Parameter
Die möglichen Parameter in einem SELECT
Anweisung sind:
ALL
- Ein optionaler Parameter, der alle übereinstimmenden Zeilen zurückgibt.DISTINCT
- Ein Parameter, der Duplikate aus der Ergebnismenge entfernt.DISTINCT ON
- Ein optionaler Parameter, der doppelte Daten basierend aufdistinct_expressions
eliminiert Schlüsselwort.expressions
- Alle Spalten und Felder, die Sie in das Ergebnis aufnehmen möchten. Angabe eines Sterns (*
) wählt alle Spalten aus.tables
- Geben Sie die Tabellen an, aus denen Sie Datensätze abrufen möchten. DerFROM
-Klausel muss mindestens eine Tabelle enthalten.WHERE conditions
- Die Klausel ist optional und enthält die Bedingungen, die erfüllt sein müssen, um die Datensätze in der Ergebnismenge zu filtern.GROUP BY expressions
- Eine optionale Klausel, die Daten aus mehreren Datensätzen sammelt und die Ergebnisse nach einer oder mehreren Spalten gruppiert.HAVING condition
- Eine optionale Klausel, die in Kombination mitGROUP BY
verwendet wird . Es beschränkt die Gruppen der zurückgegebenen Zeilen auf diejenigen, die die BedingungTRUE
erfüllen , wodurch sie gefiltert werden.ORDER BY expression
- Eine optionale Klausel, die angibt, welche Spalte oder Spalten verwendet werden sollen, um die Daten in der Ergebnismenge zu sortieren.LIMIT
- Eine optionale Klausel, die die maximale Anzahl von Datensätzen festlegt, die aus der Tabelle abgerufen werden sollen, angegeben durchnumber_rows
Syntax. Die erste Zeile in der Ergebnismenge wird durchoffset_value
bestimmt .FETCH
- Eine optionale Klausel, die die maximale Anzahl von Datensätzen in der Ergebnismenge festlegt. Geben Sie anstelle vonfetch_rows
die Anzahl der Datensätze an Syntax. Deroffset_value
bestimmt die erste Zeile in der Ergebnismenge.FOR UPDATE
- Eine optionale Klausel, die die Datensätze, die zum Ausführen der Abfrage benötigt werden, schreibgeschützt macht, bis die Transaktion abgeschlossen ist.FOR SHARE
- Eine optionale Klausel, die es erlaubt, dass die Datensätze von anderen Transaktionen verwendet werden, aber ihre Aktualisierung oder Löschung verhindert.
Beispiele für PostgreSQL-SELECT-Anweisungen
Die folgenden Abschnitte zeigen mehrere Anwendungsfälle für SELECT
Aussage.
Beispiel 1:Alle Felder auswählen
Der einfachste Weg, alle Felder aus einer Tabelle zurückzugeben und den gesamten Inhalt einer Tabelle anzuzeigen, ist die Verwendung eines PostgreSQL SELECT
Erklärung.
Zum Beispiel:
SELECT * FROM actor;
Im obigen Beispiel zeigt die Ausgabe alle Felder, die in der Akteurstabelle enthalten sind.
Beispiel 2:Ergebnisse filtern, um eine Bedingung zu erfüllen
Die SELECT
-Anweisung können Sie die Ergebnisse filtern, indem Sie eine Bedingung festlegen. Im folgenden Beispiel wollen wir nur die Filmtitel anzeigen, deren Filmsprache Englisch ist (language_id=1
):
SELECT title
FROM film
WHERE language_id=1;
Beispiel 3:Felder aus mehreren Tabellen auswählen
Mit PostgreSQL können Sie Daten aus mehreren Tabellen in einer Datenbank verarbeiten. Verwenden Sie JOINS, um Ergebnisse aus mehreren Tabellen in einer einzigen Abfrage zu erhalten .
Zum Beispiel:
SELECT customer.first_name, customer.last_name, payment.amount
FROM customer
INNER JOIN payment
ON customer.customer_id=payment.customer_id
ORDER BY amount DESC;
Im obigen Beispiel kombinieren wir zwei Tabellen mit INNER JOIN
um eine Ergebnismenge zu erhalten, die die Vor- und Nachnamenspalten aus einer Tabelle und den Zahlungsbetrag aus einer anderen Tabelle anzeigt. Die beiden Tabellen werden durch die customer_id
verbunden Spalte, die in beiden Tabellen gleich ist.
Die Ergebnisse sind in absteigender Reihenfolge, angegeben durch ORDER BY amount DESC
Klausel.
Beispiel 4:Einzelne Felder aus einer Tabelle auswählen
Die PostgreSQL-SELECT
-Anweisung können Sie einzelne Felder aus einer Tabelle zurückgeben.
Zum Beispiel:
SELECT first_name, last_name
FROM actor
ORDER BY last_name ASC;
Das obige Beispiel liefert nur die Vor- und Nachnamen der Akteure und lässt andere Spalten weg. Die Ausgabe ordnet die Ergebnisse nach dem Nachnamen in aufsteigender Reihenfolge.
Beispiel 5:Spalten verketten
Wenn Sie möchten, dass Ihre Ergebnismenge mehrere Spalten zu einer kombiniert, können Sie den Verkettungsoperator ||
verwenden mit SELECT
Erklärung. Zum Beispiel:
SELECT
first_name || ' ' || last_name
FROM
customer;
In diesem Beispiel haben wir die Vor- und Nachnamenspalten verkettet, um den vollständigen Namen jedes Kunden zu erhalten.
Beispiel 6:Berechnungen
Sie können auch SELECT
verwenden -Anweisung, um einige Berechnungen durchzuführen, aber dann lassen Sie FROM
weg Klausel. Zum Beispiel:
SELECT 15*3/5;
Die Ausgabe ist das Ergebnis des in SELECT
angegebenen mathematischen Ausdrucks Aussage.