Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Istruzioni SELECT PartiQL per DynamoDB
Utilizza l'istruzione SELECT per recuperare i dati da una tabella in Amazon DynamoDB.
L’uso di un’istruzione SELECT può comportare una scansione completa della tabella se non si fornisce una condizione di uguaglianza o IN con una chiave di partizione nella clausola WHERE. L'operazione di scansione esamina ogni elemento per i valori richiesti e può utilizzare la velocità effettiva assegnata per una tabella o un indice di grandi dimensioni in un'unica operazione.
Se desideri evitare la scansione completa della tabella in PartiQL, è possibile:
-
Crea le tue istruzioni
SELECTper non provocare scansioni complete della tabella assicurandoti che la condizione della clausola WHERE (DOVE) sia configurata di conseguenza. -
Disabilitare le scansioni di tabelle complete utilizzando la policy IAM specificata in Esempio: Consentire le istruzioni Select e rifiutare le istruzioni di scansione completa della tabella in PartiQL per DynamoDB, nella Guida per gli sviluppatori di DynamoDB.
Per ulteriori informazioni, consulta la sezione Best practice per eseguire query e scansioni di dati nella Guida per gli sviluppatori di DynamoDB.
Argomenti
Sintassi
SELECTexpression[, ...] FROMtable[.index] [ WHEREcondition] [ [ORDER BYkey[DESC|ASC] , ...]
Parameters
expression-
(Obbligatorio) Una proiezione formata dal carattere jolly
*o un elenco di proiezione di uno o più nomi di attributi o percorsi di documento dal set di risultati. Un'espressione può essere costituita da chiamate a Utilizzo delle funzioni PartiQL con DynamoDB o da campi modificati da Operatori PartiQL aritmetici, di confronto e logici per DynamoDB . table-
(Obbligatorio) Il nome della tabella per cui eseguire la query.
index-
(Facoltativo) Il nome dell'indice su cui eseguire una query.
Nota
È necessario aggiungere virgolette doppie al nome della tabella e al nome dell'indice quando si esegue una query su un indice.
SELECT * FROM "TableName"."IndexName" condition-
(Facoltativo) I criteri di selezione per la query.
Importante
Per garantire che una istruzione
SELECTnon comporti una scansione completa della tabella, la condizione della clausolaWHEREdeve specificare una chiave di partizione. Utilizza l'operatore di uguaglianza o IN.Ad esempio, in presenza di una tabella
Orderscon una chiave di partizioneOrderIDe altri attributi non chiave, tra cuiAddress, le istruzioni seguenti non comportano una scansione completa della tabella:SELECT * FROM "Orders" WHERE OrderID = 100 SELECT * FROM "Orders" WHERE OrderID = 100 and Address='some address' SELECT * FROM "Orders" WHERE OrderID = 100 or OrderID = 200 SELECT * FROM "Orders" WHERE OrderID IN [100, 300, 234]Le seguenti istruzioni
SELECT, tuttavia, provocheranno una scansione completa della tabella:SELECT * FROM "Orders" WHERE OrderID > 1 SELECT * FROM "Orders" WHERE Address='some address' SELECT * FROM "Orders" WHERE OrderID = 100 OR Address='some address' key-
(Facoltativo) Una chiave hash o una chiave di ordinamento da utilizzare per ordinare i risultati restituiti. L'ordine di default è crescente (
ASC); specificaDESCse desideri che i risultati vengano rigenerati in ordine decrescente.
Nota
Se si omette la clausola WHERE, saranno recuperati tutti gli elementi della tabella.
Esempi
La seguente query restituisce un elemento, se esistente, dalla tabella Orders specificando la chiave di partizione, OrderID, e utilizzando l'operatore di uguaglianza.
SELECT OrderID, Total FROM "Orders" WHERE OrderID = 1
La seguente query restituisce tutti gli elementi nella tabella Orders che hanno una chiave di partizione specifica, OrderID, i valori che utilizzano l'operatore OR.
SELECT OrderID, Total FROM "Orders" WHERE OrderID = 1 OR OrderID = 2
La seguente query restituisce tutti gli elementi nella tabella Orders che hanno una chiave di partizione specifica, OrderID, i valori che utilizzano l'operatore IN. I risultati restituiti sono in ordine decrescente, in base al valore dell'attributo della chiave OrderID.
SELECT OrderID, Total FROM "Orders" WHERE OrderID IN [1, 2, 3] ORDER BY OrderID DESC
La seguente query mostra una scansione completa della tabella che restituisce tutti gli elementi dalla tabella Orders che hanno un Total maggiore di 500, dove Total è un attributo non chiave.
SELECT OrderID, Total FROM "Orders" WHERE Total > 500
La seguente query mostra una scansione completa della tabella che restituisce tutti gli elementi dalla tabella Orders in un intervallo di ordinamento Total specifico, utilizzando l'operatore IN e un attributo non chiave Total.
SELECT OrderID, Total FROM "Orders" WHERE Total IN [500, 600]
La seguente query mostra una scansione completa della tabella che restituisce tutti gli elementi dalla tabella Orders in un intervallo di ordinamento Total specifico, utilizzando l'operatore BETWEEN e un attributo non chiave Total.
SELECT OrderID, Total FROM "Orders" WHERE Total BETWEEN 500 AND 600
La seguente query restituisce la prima data in cui è stato utilizzato un dispositivo firestick specificando la chiave di partizione CustomerID e la chiave di ordinamento MovieID nella condizione clausola WHERE (DOVE) e utilizzando percorsi documento nella clausola SELECT (SELEZIONA).
SELECT Devices.FireStick.DateWatched[0] FROM WatchList WHERE CustomerID= 'C1' AND MovieID= 'M1'
La seguente query mostra una scansione completa della tabella che restituisce l'elenco degli elementi in cui un dispositivo firestick è stato utilizzato per la prima volta dopo il 12/12/19 utilizzando percorsi di documento nella condizione della clausola WHERE (DOVE).
SELECT Devices FROM WatchList WHERE Devices.FireStick.DateWatched[0] >= '12/24/19'