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.
Ihre Daten werden abgefragt
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
In der Benutzeransicht wird nur die letzte, nicht gelöschte Version Ihrer Benutzerdaten angezeigt. Dies ist die Standardansicht in AmazonQLDB. Dies bedeutet, dass keine speziellen Kriterien erforderlich sind, wenn Sie nur Ihre Daten abfragen möchten.
Einzelheiten zur Syntax und zu den Parametern der folgenden Abfragebeispiele finden Sie SELECT in der Amazon QLDB PartiQL-Referenz.
Grundlegende Abfragen
Grundlegende SELECT
-Abfragen geben die Dokumente zurück, die Sie in die Tabelle eingefügt haben.
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.
Die folgenden Abfragen zeigen Ergebnisse für die Fahrzeugscheindokumente, die Sie zuvor eingefügt haben. Tabellen mit Indizes erstellen und Dokumente einfügen 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.
SELECT * FROM VehicleRegistration WHERE LicensePlateNumber IN ('LEWISR261LL', 'CA762X')
{
VIN: "1N4AL11D75C109151",
LicensePlateNumber: "LEWISR261LL",
State: "WA",
City: "Seattle",
PendingPenaltyTicketAmount: 90.25,
ValidFromDate: 2017-08-21T,
ValidToDate: 2020-05-11T,
Owners: {
PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
}
},
{
VIN: "KM8SRDHF6EU074761",
LicensePlateNumber: "CA762X",
State: "WA",
City: "Kent",
PendingPenaltyTicketAmount: 130.75,
ValidFromDate: 2017-09-14T,
ValidToDate: 2020-06-25T,
Owners: {
PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" },
SecondaryOwners: []
}
}
SELECT * FROM Vehicle WHERE VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{
VIN: "1N4AL11D75C109151",
Type: "Sedan",
Year: 2011,
Make: "Audi",
Model: "A5",
Color: "Silver"
},
{
VIN: "KM8SRDHF6EU074761",
Type: "Sedan",
Year: 2015,
Make: "Tesla",
Model: "Model S",
Color: "Blue"
}
Wichtig
In PartiQL verwenden Sie einfache Anführungszeichen, um Zeichenketten in Data Manipulation Language (DML) oder Query-Anweisungen zu bezeichnen. Die QLDB Konsole und die QLDB Shell geben die Abfrageergebnisse jedoch im Amazon Ion-Textformat zurück, sodass Zeichenketten in doppelten Anführungszeichen angezeigt werden.
Diese Syntax ermöglicht es der PartiQL-Abfragesprache, die SQL Kompatibilität aufrechtzuerhalten, und dem Amazon Ion-Textformat, die JSON Kompatibilität aufrechtzuerhalten.
Projektionen und Filter
Sie können Projektionen (zielgerichtetSELECT
) und andere Standardfilter (WHERE
Klauseln) verwenden. Die folgende Abfrage gibt eine Teilmenge der Dokumentfelder aus der VehicleRegistration
-Tabelle zurück. Sie filtert nach Fahrzeugen mit den folgenden Kriterien:
-
Zeichenkettenfilter — Er ist in Seattle registriert.
-
Dezimalfilter — Der Betrag des ausstehenden Strafzettels liegt unter
100.0
. -
Datumsfilter — Es hat ein Registrierungsdatum, das am oder nach dem 4. September 2019 gültig ist.
SELECT r.VIN, r.PendingPenaltyTicketAmount, r.Owners FROM VehicleRegistration AS r WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761') AND r.City = 'Seattle' --string AND r.PendingPenaltyTicketAmount < 100.0 --decimal AND r.ValidToDate >= `2019-09-04T` --timestamp with day precision
{
VIN: "1N4AL11D75C109151",
PendingPenaltyTicketAmount: 90.25,
Owners: {
PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
}
}
Joins
Sie können auch innere Join-Abfragen schreiben. Das folgende Beispiel zeigt eine implizite innere Join-Abfrage, die alle Zulassungsdokumente zusammen mit den Attributen der registrierten Fahrzeuge zurückgibt.
SELECT * FROM VehicleRegistration AS r, Vehicle AS v WHERE r.VIN = v.VIN AND r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{
VIN: "1N4AL11D75C109151",
LicensePlateNumber: "LEWISR261LL",
State: "WA",
City: "Seattle",
PendingPenaltyTicketAmount: 90.25,
ValidFromDate: 2017-08-21T,
ValidToDate: 2020-05-11T,
Owners: {
PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
},
Type: "Sedan",
Year: 2011,
Make: "Audi",
Model: "A5",
Color: "Silver"
},
{
VIN: "KM8SRDHF6EU074761",
LicensePlateNumber: "CA762X",
State: "WA",
City: "Kent",
PendingPenaltyTicketAmount: 130.75,
ValidFromDate: 2017-09-14T,
ValidToDate: 2020-06-25T,
Owners: {
PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" },
SecondaryOwners: []
},
Type: "Sedan",
Year: 2015,
Make: "Tesla",
Model: "Model S",
Color: "Blue"
}
Oder Sie können dieselbe innere Join-Abfrage in der expliziten Syntax wie folgt schreiben.
SELECT * FROM VehicleRegistration AS r INNER JOIN Vehicle AS v ON r.VIN = v.VIN WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
Verschachtelte Daten
Sie können PartiQL verwenden, QLDB um verschachtelte Daten in Dokumenten abzufragen. Das folgende Beispiel zeigt eine korrelierte Unterabfrage, die verschachtelte Daten vereinfacht. Das Zeichen @
ist hier technisch optional. Es gibt jedoch explizit an, dass Sie die Owners
-Struktur innerhalb von VehicleRegistration
haben möchten, und nicht eine andere Sammlung mit dem Namen Owners
(sofern vorhanden).
SELECT r.VIN, o.SecondaryOwners FROM VehicleRegistration AS r, @r.Owners AS o WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{
VIN: "1N4AL11D75C109151",
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
},
{
VIN: "KM8SRDHF6EU074761",
SecondaryOwners: []
}
Das folgende Beispiel zeigt eine Unterabfrage in der SELECT
-Liste, die verschachtelte Daten projiziert, zusätzlich zu einem 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')
{
Make: "Audi",
Model: "A5",
PrimaryOwner: ["294jJ3YUoH1IEEm8GSabOs"]
},
{
Make: "Tesla",
Model: "Model S",
PrimaryOwner: ["IN7MvYtUjkp1GMZu0F6CG9"]
}
Die folgende Abfrage gibt die PersonId
und die Indexzahl (Ordnungszahl) jeder Person in der Owners.SecondaryOwners
Liste für ein Dokument zurück. VehicleRegistration
SELECT s.PersonId, owner_idx FROM VehicleRegistration AS r, @r.Owners.SecondaryOwners AS s AT owner_idx WHERE r.VIN = '1N4AL11D75C109151'
{
PersonId: "5Ufgdlnj06gF5CWcOIu64s",
owner_idx: 0
}
Weitere Informationen zur Abfrage Ihrer Dokumentmetadaten finden Sie unter Metadaten von Dokumenten werden abgefragt.