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.
WÄHLEN SIE IN
Sie können Daten aus Tabellen mit der SELECT
Anweisung abfragen, die eine oder mehrere Spalten für eine oder mehrere Zeilen in einer Tabelle liest und eine Ergebnismenge zurückgibt, die die Zeilen enthält, die der Anforderung entsprechen. Eine SELECT
Anweisung enthält eineselect_clause
, die bestimmt, welche Spalten gelesen und in der Ergebnismenge zurückgegeben werden sollen. Die Klausel kann Anweisungen zum Transformieren der Daten enthalten, bevor sie zurückgegeben werden. Die optionale WHERE
Klausel gibt an, welche Zeilen abgefragt werden müssen, und besteht aus Beziehungen zu den Spalten, die Teil des Primärschlüssels sind. Amazon Keyspaces unterstützt das IN
Schlüsselwort in der WHERE
Klausel. In diesem Abschnitt wird anhand von Beispielen gezeigt, wie Amazon Keyspaces SELECT
Anweisungen mit dem IN
Schlüsselwort verarbeitet.
Dieses Beispiel zeigt, wie Amazon Keyspaces die SELECT
Anweisung mit dem IN
Schlüsselwort in Unterabfragen aufteilt. In diesem Beispiel verwenden wir eine Tabelle mit dem Namen. my_keyspace.customers
Die Tabelle hat eine Primärschlüsselspaltedepartment_id
, zwei Clusterspalten sales_region_id
und eine Spaltesales_representative_id
, die den Namen des Kunden in der customer_name
Spalte enthält.
SELECT * FROM my_keyspace.customers; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 0 | 0 | a 0 | 0 | 1 | b 0 | 1 | 0 | c 0 | 1 | 1 | d 1 | 0 | 0 | e 1 | 0 | 1 | f 1 | 1 | 0 | g 1 | 1 | 1 | h
Mithilfe dieser Tabelle können Sie die folgende SELECT
Anweisung ausführen, um anhand des IN
Schlüsselworts in der WHERE
Klausel die Kunden in den Abteilungen und Vertriebsregionen zu finden, an denen Sie interessiert sind. Die folgende Aussage ist ein Beispiel dafür.
SELECT * FROM my_keyspace.customers WHERE department_id IN (0, 1) AND sales_region_id IN (0, 1);
Amazon Keyspaces unterteilt diese Anweisung in vier Unterabfragen, wie in der folgenden Ausgabe dargestellt.
SELECT * FROM my_keyspace.customers WHERE department_id = 0 AND sales_region_id = 0; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 0 | 0 | a 0 | 0 | 1 | b SELECT * FROM my_keyspace.customers WHERE department_id = 0 AND sales_region_id = 1; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 1 | 0 | c 0 | 1 | 1 | d SELECT * FROM my_keyspace.customers WHERE department_id = 1 AND sales_region_id = 0; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 1 | 0 | 0 | e 1 | 0 | 1 | f SELECT * FROM my_keyspace.customers WHERE department_id = 1 AND sales_region_id = 1; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 1 | 1 | 0 | g 1 | 1 | 1 | h
Wenn das IN
Schlüsselwort verwendet wird, paginiert Amazon Keyspaces die Ergebnisse in den folgenden Fällen automatisch:
Nachdem jede zehnte Unterabfrage verarbeitet wurde.
Nach der Verarbeitung von 1 MB logischer I/O.
Wenn Sie eine konfiguriert haben
PAGE SIZE
, paginiert Amazon Keyspaces nach dem Lesen der Anzahl der Abfragen, die auf der Gruppe basieren, die verarbeitet werden sollen.PAGE SIZE
Wenn Sie das
LIMIT
Schlüsselwort verwenden, um die Anzahl der zurückgegebenen Zeilen zu reduzieren, paginiert Amazon Keyspaces, nachdem es die Anzahl der Abfragen gelesen hat, die basierend auf dem Satz verarbeitet werden sollen.LIMIT
Die folgende Tabelle wird verwendet, um dies anhand eines Beispiels zu veranschaulichen.
Weitere Hinweise zur Seitennummerierung finden Sie unterErgebnisse in Amazon Keyspaces paginieren.
SELECT * FROM my_keyspace.customers; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 2 | 0 | 0 | g 2 | 1 | 1 | h 2 | 2 | 2 | i 0 | 0 | 0 | a 0 | 1 | 1 | b 0 | 2 | 2 | c 1 | 0 | 0 | d 1 | 1 | 1 | e 1 | 2 | 2 | f 3 | 0 | 0 | j 3 | 1 | 1 | k 3 | 2 | 2 | l
Sie können die folgende Anweisung für diese Tabelle ausführen, um zu sehen, wie die Paginierung funktioniert.
SELECT * FROM my_keyspace.customers WHERE department_id IN (0, 1, 2, 3) AND sales_region_id IN (0, 1, 2) AND sales_representative_id IN (0, 1);
Amazon Keyspaces verarbeitet diese Anweisung als 24 Unterabfragen, da die Kardinalität des kartesischen Produkts aller in dieser Abfrage enthaltenen IN
Begriffe 24 ist.
department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 0 | 0 | 0 | a 0 | 1 | 1 | b 1 | 0 | 0 | d 1 | 1 | 1 | e ---MORE--- department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 2 | 0 | 0 | g 2 | 1 | 1 | h 3 | 0 | 0 | j ---MORE--- department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 3 | 1 | 1 | k
Dieses Beispiel zeigt, wie Sie die ORDER BY
Klausel in einer Anweisung mit dem Schlüsselwort verwenden können. SELECT
IN
SELECT * FROM my_keyspace.customers WHERE department_id IN (3, 2, 1) ORDER BY sales_region_id DESC; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 3 | 2 | 2 | l 3 | 1 | 1 | k 3 | 0 | 0 | j 2 | 2 | 2 | i 2 | 1 | 1 | h 2 | 0 | 0 | g 1 | 2 | 2 | f 1 | 1 | 1 | e 1 | 0 | 0 | d
Unterabfragen werden in der Reihenfolge verarbeitet, in der die Spalten Partitionsschlüssel und Clusterschlüssel in der Abfrage dargestellt werden. Im folgenden Beispiel werden Unterabfragen für den Partitionsschlüsselwert“ 2 „zuerst verarbeitet, gefolgt von Unterabfragen für den Partitionsschlüsselwert“ 3 „und“ 1“. Die Ergebnisse einer bestimmten Unterabfrage werden gemäß der Sortierklausel der Abfrage, falls vorhanden, oder der bei der Tabellenerstellung definierten Clusterreihenfolge der Tabelle sortiert.
SELECT * FROM my_keyspace.customers WHERE department_id IN (2, 3, 1) ORDER BY sales_region_id DESC; department_id | sales_region_id | sales_representative_id | customer_name ---------------+-----------------+-------------------------+-------------- 2 | 2 | 2 | i 2 | 1 | 1 | h 2 | 0 | 0 | g 3 | 2 | 2 | l 3 | 1 | 1 | k 3 | 0 | 0 | j 1 | 2 | 2 | f 1 | 1 | 1 | e 1 | 0 | 0 | d