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'SELECT
instruction peut entraîner une analyse complète de la table si aucune condition d'égalité ou d'entrée avec une clé de partition n'est fournie dans la WHERE clause. 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 :
-
Rédigez vos
SELECT
instructions de manière à ne pas générer d'analyses complètes de la table en vous assurant que la condition de votre WHERE clause est configurée en conséquence. -
Désactivez l'analyse complète des tables à Exemple : autoriser les instructions de sélection et rejeter les instructions d'analyse de table complète dans PartiQL pour DynamoDB l'aide IAM de la politique spécifiée dans le guide du développeur DynamoDB.
Pour plus d'informations, consultez Bonnes pratiques pour l'interrogation et l'analyse des données dans le Guide du développeur DynamoDB.
Rubriques
Syntaxe
SELECT
expression
[, ...] FROMtable
[.index
] [ WHEREcondition
] [ [ORDER BYkey
[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 clauseWHERE
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 partitionOrderID
et des attributs autres que de clé, dont uneAddress
, 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 OrderID = 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écifiezDESC
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 Orders
dans 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 montre une analyse complète de la table qui renvoie tous les éléments de la Orders
table dans une plage de Total
commande spécifique, à l'aide de l'BETWEENopérateur et d'un attribut Total
non clé.
SELECT OrderID, Total FROM "Orders" WHERE Total BETWEEN 500 AND 600
La requête suivante renvoie la première date qu'un périphérique Firestick a été utilisé pour surveiller en spécifiant la clé de partition CustomerID
et la clé de tri MovieID
dans la condition de WHERE clause et en utilisant les chemins des documents dans la SELECT clause.
SELECT Devices.FireStick.DateWatched[0] FROM WatchList WHERE CustomerID= 'C1' AND MovieID= 'M1'
La requête suivante montre une analyse complète de la table qui renvoie la liste des éléments pour lesquels un dispositif Firestick a été utilisé pour la première fois après le 24/12/19 en utilisant les chemins des documents dans la condition de clause. WHERE
SELECT Devices FROM WatchList WHERE Devices.FireStick.DateWatched[0] >= '12/24/19'