Instruções Select em PartiQL para DynamoDB
Use a instrução SELECT
para recuperar dados de uma tabela no Amazon DynamoDB.
O uso da declaração SELECT
poderá gerar uma verificação completa da tabela se uma condição de igualdade ou IN com uma chave de partição não for fornecida na cláusula WHERE. Uma operação de verificação examina todos os itens com os valores solicitados e pode usar o throughput provisionado para uma tabela ou índice grande em uma única operação.
Se desejar evitar a verificação completa da tabela em PartiQL, você pode:
-
Criar suas instruções
SELECT
para não resultar em verificações completas de tabela, certificando-se de que a condição da cláusula WHERE seja configurada de acordo. -
Desativar verificações completas de tabela usando a política do IAM especificada em Exemplo: permitir instruções Select e negar instruções de verificação de tabela completa em PartiQL para DynamoDB, conforme descrito no Guia do desenvolvedor do DynamoDB.
Para obter mais informações, consulte Melhores práticas para consulta e verificação de dados no Guia do desenvolvedor do DynamoDB.
Tópicos
Sintaxe
SELECT
expression
[, ...] FROMtable
[.index
] [ WHEREcondition
] [ [ORDER BYkey
[DESC|ASC] , ...]
Parâmetros
expressão
-
(Obrigatório) Uma projeção formada a partir do curinga
*
ou uma lista de projeção de um ou mais nomes de atributos ou caminhos de documentos do conjunto de resultados. Uma expressão pode consistir em chamadas para Usar funções PartiQL com o DynamoDB ou campos que são modificados por Operadores aritméticos, comparativos e lógicos de PartiQL para DynamoDB . tabela
-
(Obrigatório) O nome da tabela a ser consultada.
índice
-
(Opcional) O nome do índice para consultar.
nota
É necessário adicionar aspas duplas ao nome da tabela e ao nome do índice ao consultar um índice.
SELECT * FROM "TableName"."IndexName"
condição
-
(Opcional) Os critérios de seleção para a consulta.
Importante
Para garantir que uma instrução
SELECT
não resulte em uma verificação completa da tabela, a condição da cláusulaWHERE
deverá especificar uma chave de partição. Use o operador de igualdade ou IN.Por exemplo, se você tiver uma tabela
Orders
com uma partiçãoOrderID
e outros atributos não chave, incluindo umAddress
, as seguintes instruções não resultarão em uma varredura completa da tabela: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]
As instruções
SELECT
a seguir, no entanto, resultarão em uma varredura completa da tabela:SELECT * FROM "Orders" WHERE OrderID > 1 SELECT * FROM "Orders" WHERE Address='some address' SELECT * FROM "Orders" WHERE OrderID = 100 OR Address='some address'
chave
-
(Opcional) Uma chave de hash ou uma chave de classificação a ser usada para ordenar os resultados retornados. A ordem padrão é crescente (
ASC
). EspecifiqueDESC
se desejar que os resultados sejam retornados em ordem decrescente.
nota
Se você omitir a cláusula WHERE
, todos os itens da tabela serão recuperados.
Exemplos
A consulta a seguir retorna um item, se houver, da tabela Orders
mediante a especificação da chave de partição OrderID
e o uso do operador de igualdade.
SELECT OrderID, Total FROM "Orders" WHERE OrderID = 1
A consulta a seguir retorna todos os itens na tabela Orders
que têm uma chave de partição específica, OrderID
, valores usando o operador OR.
SELECT OrderID, Total FROM "Orders" WHERE OrderID = 1 OR OrderID = 2
A consulta a seguir retorna todos os itens na tabela Orders
que têm uma chave de partição específica, OrderID
, valores usando o operador IN. Os resultados retornados estão em ordem decrescente, com base no valor de atributo de chave OrderID
.
SELECT OrderID, Total FROM "Orders" WHERE OrderID IN [1, 2, 3] ORDER BY OrderID DESC
A consulta a seguir mostra uma varredura de tabela completa que retorna todos os itens da tabela Orders
que têm uma Total
maior que 500, onde Total
é um atributo não chave.
SELECT OrderID, Total FROM "Orders" WHERE Total > 500
A consulta a seguir mostra uma varredura de tabela completa que retorna todos os itens da tabela Orders
em um intervalo de ordem Total
específico, usando o operador IN e um atributo não chave Total
.
SELECT OrderID, Total FROM "Orders" WHERE Total IN [500, 600]
A consulta a seguir mostra uma varredura de tabela completa que retorna todos os itens da tabela Orders
em um intervalo de ordem Total
específico, usando o operador BETWEEN e um atributo não chave Total
.
SELECT OrderID, Total FROM "Orders" WHERE Total BETWEEN 500 AND 600
A consulta a seguir retorna a primeira data em que um dispositivo firestick foi usado para observar mediante a especificação da chave de partição CustomerID
e da chave de classificação MovieID
na condição da cláusula WHERE e usando caminhos de documento na cláusula SELECT.
SELECT Devices.FireStick.DateWatched[0] FROM WatchList WHERE CustomerID= 'C1' AND MovieID= 'M1'
A consulta a seguir mostra uma verificação de tabela completa que retorna a lista de itens em que um dispositivo firestick foi usado pela primeira vez após 24/12/19 usando caminhos de documento na condição da cláusula WHERE.
SELECT Devices FROM WatchList WHERE Devices.FireStick.DateWatched[0] >= '12/24/19'