Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

SELECTBefehl in Amazon QLDB - Amazon Quantum Ledger-Datenbank (AmazonQLDB)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

SELECTBefehl in Amazon QLDB

Wichtig

Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter Migrieren eines Amazon QLDB Ledgers zu Amazon Aurora SQL Postgre.

Verwenden Sie in Amazon den SELECT BefehlQLDB, um Daten aus einer oder mehreren Tabellen abzurufen. Jede SELECT eingehende Anfrage QLDB wird in einer Transaktion verarbeitet und unterliegt einem Transaktions-Timeout-Limit.

Die Reihenfolge der Ergebnisse ist nicht spezifisch und kann für jede SELECT Abfrage variieren. Sie sollten sich bei keiner Abfrage auf die Reihenfolge der Ergebnisse verlassenQLDB.

Informationen zur Steuerung des Zugriffs auf die Ausführung dieses PartiQL-Befehls für bestimmte Tabellen finden Sie unterErste Schritte mit dem Standardberechtigungsmodus in Amazon QLDB.

Warnung

Wenn Sie eine Abfrage QLDB ohne indizierte Suche ausführen, wird ein vollständiger Tabellenscan aufgerufen. PartiQL unterstützt solche Abfragen, weil es SQL kompatibel ist. Führen Sie jedoch keine Tabellenscans für Produktionsanwendungsfälle in QLDB aus. Tabellenscans können bei großen Tabellen zu Leistungsproblemen führen, einschließlich Parallelitätskonflikten und Transaktions-Timeouts.

Um Tabellenscans zu vermeiden, müssen Sie Anweisungen mit einer WHERE Prädikatklausel ausführen, indem Sie einen Gleichheitsoperator für ein indiziertes Feld oder eine Dokument-ID verwenden, z. B. oder. WHERE indexedField = 123 WHERE indexedField IN (456, 789) Weitere Informationen finden Sie unter Optimierung der Abfrageleistung.

Syntax

SELECT [ VALUE ] expression [ AS field_alias ] [, expression, ... ] FROM source [ AS source_alias ] [ AT idx_alias ] [ BY id_alias ] [, source, ... ] [ WHERE condition ]

Parameter

VALUE

Ein Qualifizierer für Ihren Ausdruck, durch den die Abfrage den unformatierten Datentypwert zurückgibt, anstatt den Wert, der von einer Tupel-Struktur umgeben ist.

expression

Eine Projektion aus dem *-Platzhalter oder eine Projektionsliste aus einem oder mehreren Dokumentfeldern aus dem Ergebnissatz. Ein Ausdruck kann aus Aufrufen an PartiQL-Funktionen oder Feldern bestehen, die von PartiQL-Operatoren geändert werden.

AS field_alias

(Optional) Ein temporärer, benutzerdefinierter Alias für das Feld, das in dem endgültigen Ergebnissatz verwendet wird. Das AS-Schlüsselwort ist optional.

Wenn Sie kein Alias für einen Ausdruck angeben, bei dem es sich nicht um einen einfachen Feldnamen handelt, wendet der Ergebnissatz einen Standardnamen auf dieses Feld an.

FROM source

Eine Quelle, die abgefragt werden soll. Die einzigen derzeit unterstützten Quellen sind Tabellennamen, interne Joins zwischen Tabellen, verschachtelte SELECT-Abfragen (vorbehaltlich Einschränkungen bei verschachtelten Abfragen) und Verlaufsfunktionsaufrufe für eine Tabelle.

Sie müssen mindestens eine Quelle angeben. Mehrere Quellen müssen durch Kommata getrennt werden.

AS source_alias

Ein optionaler, benutzerdefinierter Alias-Name, der über eine Quelle reicht, aus der abgefragt werden soll. Alle Quell-Aliasse, die in den Klauseln SELECT ODER WHERE verwendet werden, müssen in der FROM-Klausel deklariert werden. Das AS-Schlüsselwort ist optional.

AT idx_alias

(Optional) Ein benutzerdefinierter Alias, der an die Indexnummer (Ordnungszahl) jedes Elements in einer Liste aus der Quelle bindet. Der Alias muss in der FROM-Klausel mit dem Schlüsselwort AT deklariert werden.

BY id_alias

(Optional) Eine benutzerdefinierter Alias, der an das Metadatenfeld id für jedes Dokument im Ergebnissatz gebunden ist. Der Alias muss in der FROM-Klausel mit dem Schlüsselwort BY deklariert werden. Dies ist nützlich, wenn Sie nach der Dokument-ID projizieren oder filtern möchten, während Sie die Standard-Benutzeransicht abfragen. Weitere Informationen finden Sie unter Verwenden der BY-Klausel zur Abfrage der Dokument-ID.

WHERE condition

Die Auswahlkriterien und Join-Kriterien (falls zutreffend) für die Abfrage.

Anmerkung

Wenn Sie die WHERE-Klausel weglassen, werden alle Dokumente in der Tabelle abgerufen.

Joins

Nur innere Joins werden derzeit unterstützt. Sie können Abfragen mithilfe der expliziten INNER JOIN-Klausel innere Join-Abfragen wie folgt schreiben. In dieser Syntax muss JOIN mit ON gekoppelt werden und das INNER-Schlüsselwort ist optional.

SELECT expression FROM table1 AS t1 [ INNER ] JOIN table2 AS t2 ON t1.element = t2.element

Sie können auch wie folgt innere Joins mithilfe der impliziten Syntax schreiben.

SELECT expression FROM table1 AS t1, table2 AS t2 WHERE t1.element = t2.element

Einschränkungen bei verschachtelten Abfragen

Sie können verschachtelte Abfragen innerhalb von SELECT-Ausdrücken und innerhalb von FROM-Quellen schreiben. Die wichtigste Beschränkung besteht darin, dass nur die äußerste Abfrage auf die globale Datenbankumgebung zugreifen kann. Beispiel: Angenommen, Sie verfügen über einen Ledger mit den Tabellen VehicleRegistration und Person. Die folgende verschachtelte Abfrage ist nicht gültig, weil die innere SELECT versucht, auf Person zuzugreifen.

SELECT r.VIN, (SELECT p.PersonId FROM Person AS p WHERE p.PersonId = r.Owners.PrimaryOwner.PersonId) AS PrimaryOwner FROM VehicleRegistration AS r

Die folgende verschachtelte Abfrage ist allerdings gültig.

SELECT r.VIN, (SELECT o.PrimaryOwner.PersonId FROM @r.Owners AS o) AS PrimaryOwner FROM VehicleRegistration AS r

Beispiele

Die folgende Abfrage zeigt eine einfache reine SELECT Platzhalterklausel mit einer WHERE Standardprädikatsklausel, die den Operator verwendet. IN

SELECT * FROM Vehicle WHERE VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')

Das folgende Beispiel zeigt SELECT-Projektionen mit einem Zeichenfolgenfilter.

SELECT FirstName, LastName, Address FROM Person WHERE Address LIKE '%Seattle%' AND GovId = 'LEWISR261LL'

Das folgende Beispiel zeigt eine korrelierte Unterabfrage, die verschachtelte Daten vereinfacht. Beachten Sie, dass das Zeichen @ hier technisch optional ist. Es wird jedoch ausdrücklich darauf hingewiesen, dass Sie die Owners Struktur, die darin verschachtelt istVehicleRegistration, nicht eine andere Sammlung benennen möchten Owners (falls vorhanden). Weitere Informationen finden Sie Verschachtelte Daten im Kapitel Arbeiten mit Daten und Verlauf.

SELECT r.VIN, o.SecondaryOwners FROM VehicleRegistration AS r, @r.Owners AS o WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')

Das folgende Beispiel zeigt eine Unterabfrage in der SELECT-Liste, die verschachtelte Daten vereinfacht, sowie einen impliziten inneren Join.

SELECT v.Make, v.Model, (SELECT VALUE o.PrimaryOwner.PersonId FROM @r.Owners AS o) AS PrimaryOwner FROM VehicleRegistration AS r, Vehicle AS v WHERE r.VIN = v.VIN AND r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')

Das folgende Beispiel zeigt einen expliziten inneren Join.

SELECT v.Make, v.Model, r.Owners FROM VehicleRegistration AS r JOIN Vehicle AS v ON r.VIN = v.VIN WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')

Das folgende Beispiel zeigt eine Projektion des Dokument-id-Metadatenfelds unter Verwendung der BY-Klausel.

SELECT r_id, r.VIN FROM VehicleRegistration AS r BY r_id WHERE r_id = 'documentId'

Im Folgenden wird die BY Klausel verwendet, um die DriversLicense Person Tabellen in ihren jeweiligen Feldern PersonId und in den id Dokumentfeldern zu verknüpfen.

SELECT * FROM DriversLicense AS d INNER JOIN Person AS p BY pid ON d.PersonId = pid WHERE pid = 'documentId'

Im Folgenden wird die verwendetFestgeschriebene Ansicht, um die Person Tabellen DriversLicense PersonId und ihre jeweiligen id Dokumentfelder miteinander zu verknüpfen.

SELECT * FROM DriversLicense AS d INNER JOIN _ql_committed_Person AS cp ON d.PersonId = cp.metadata.id WHERE cp.metadata.id = 'documentId'

Im Folgenden wird die PersonId Indexzahl (Ordnungszahl) jeder Person in der Owners.SecondaryOwners Liste für ein Dokument in der Tabelle VehicleRegistration zurückgegeben.

SELECT s.PersonId, owner_idx FROM VehicleRegistration AS r, @r.Owners.SecondaryOwners AS s AT owner_idx WHERE r.VIN = 'KM8SRDHF6EU074761'

Wird programmgesteuert mit dem Treiber ausgeführt

Informationen zum programmgesteuerten Ausführen dieser Anweisung mithilfe des QLDB Treibers finden Sie in den folgenden Tutorials unter Erste Schritte mit dem Treiber:

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.