Instructions PartiQL de sélection pour DynamoDB - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Instructions PartiQL de sélection pour DynamoDB

Utilisez l'instruction SELECT pour extraire des données d'une table dans Amazon DynamoDB.

L'utilisation de l'SELECTinstruction peut entraîner une analyse complète de la table si aucune condition d'égalité ou IN avec une clé de partition n'est fournie dans la clause WHERE. Une opération d'analyse examine chaque élément en lien avec les valeurs demandées, et peut utiliser tout le débit approvisionné pour une table ou un index volumineux en une seule opération.

Si vous voulez éviter une analyse de table complète dans PartiQL, vous pouvez :

Pour plus d'informations, consultez Bonnes pratiques pour l'interrogation et l'analyse des données dans le Guide du développeur DynamoDB.

Syntaxe

SELECT expression [, ...] FROM table[.index] [ WHERE condition ] [ [ORDER BY key [DESC|ASC] , ...]

Paramètres

expression

(Obligatoire) Projection formée à partir du caractère générique * ou d'une liste de projection d'un ou de plusieurs noms d'attributs ou chemins d'accès de documents de l'ensemble de résultats. Une expression peut être constituée d'appels à Utiliser les fonctions PartiQL avec DynamoDB ou de champs modifiés par Opérateurs arithmétiques, de comparaison et logiques PartiQL pour DynamoDB .

table

(Obligatoire) Nom de la table à interroger.

index

(Facultatif) Nom de l'index à interroger.

Note

Vous devez ajouter des guillemets doubles au nom de la table et au nom de l'index lorsque vous interrogez un index.

SELECT * FROM "TableName"."IndexName"
condition

(Facultatif) Critères de sélection pour la requête.

Important

Pour s'assurer qu'une instruction SELECT n'entraîne pas une analyse de table complète, la condition de clause WHERE doit spécifier une clé de partition. Utilisez l'opérateur d'égalité ou IN (DANS).

Par exemple, si vous avez une table Orders avec une clé de partition OrderID et des attributs autres que de clé, dont une Address, les instructions suivantes n'entraînent pas d'analyse de table complète :

SELECT * FROM "Orders" WHERE OrderID = 100 SELECT * FROM "Orders" WHERE OrderID = 100 and Address='some address' SELECT * FROM "Orders" WHERE OrderID = 100 or pk = 200 SELECT * FROM "Orders" WHERE OrderID IN [100, 300, 234]

En revanche, les instructions SELECT suivantes entraînent une analyse de table complète :

SELECT * FROM "Orders" WHERE OrderID > 1 SELECT * FROM "Orders" WHERE Address='some address' SELECT * FROM "Orders" WHERE OrderID = 100 OR Address='some address'
key

(Facultatif) Clé de hachage ou clé de tri à utiliser pour ordonner les résultats renvoyés. L'ordre par défaut est croissant (ASC). Spécifiez DESC si vous voulez que les résultats soient réordonnés dans l'ordre décroissant.

Note

Si vous omettez la clause WHERE, tous les éléments de la table sont extraits.

Exemples

La requête suivante renvoie un élément existant de la table Orders en spécifiant la clé de partition, OrderID, et en utilisant l'opérateur d'égalité.

SELECT OrderID, Total FROM "Orders" WHERE OrderID = 1

La requête suivante renvoie tous les éléments de la table Orders ayant une clé de partition spécifique, OrderID, et leurs valeurs en utilisant l'opérateur OR (OU).

SELECT OrderID, Total FROM "Orders" WHERE OrderID = 1 OR OrderID = 2

La requête suivante renvoie tous les éléments de la table Orders ayant une clé de partition spécifique, OrderID, et leurs valeurs en utilisant l'opérateur IN (DANS). Les résultats renvoyés sont dans l'ordre décroissant de la valeur de leur attribut de clé OrderID.

SELECT OrderID, Total FROM "Orders" WHERE OrderID IN [1, 2, 3] ORDER BY OrderID DESC

La requête suivante affiche une analyse de table complète qui renvoie tous les éléments de la table Orders dont la valeur Total est supérieure à 500, où Total est un attribut autre que de clé.

SELECT OrderID, Total FROM "Orders" WHERE Total > 500

La requête suivante affiche une analyse de table complète qui renvoie tous les éléments de la table Ordersdans une plage Total spécifique, en utilisant l'opérateur IN (DANS) et un attribut autre que de clé Total.

SELECT OrderID, Total FROM "Orders" WHERE Total IN [500, 600]

La requête suivante affiche une analyse de table complète qui renvoie tous les éléments de la table Ordersdans une plage Total spécifique, en utilisant l'opérateur BETWEEN (ENTRE) et un attribut autre que de clé Total.

SELECT OrderID, Total FROM "Orders" WHERE Total BETWEEN 500 AND 600

La requête suivante renvoie la première date à laquelle un Firestick a été utilisé, en spécifiant la clé de partition CustomerID et une clé de tri MovieID dans la condition de clause WHERE, et en utilisant des chemins d'accès de document dans la clause SELECT.

SELECT Devices.FireStick.DateWatched[0] FROM WatchList WHERE CustomerID= 'C1' AND MovieID= 'M1'

La requête suivante affiche une analyse de table complète qui renvoie la liste des éléments pour lesquels un Firestick a été utilisé pour la première fois après le 24/12/19, en utilisant des chemins de document dans la condition de la clause WHERE.

SELECT Devices FROM WatchList WHERE Devices.FireStick.DateWatched[0] >= '12/24/19'