Instruções Select em PartiQL para DynamoDB - Amazon DynamoDB

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:

Para obter mais informações, consulte Melhores práticas para consulta e verificação de dados no Guia do desenvolvedor do DynamoDB.

Sintaxe

SELECT expression [, ...] FROM table[.index] [ WHERE condition ] [ [ORDER BY key [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áusula WHERE 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ção OrderID e outros atributos não chave, incluindo um Address, 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). Especifique DESC 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 Ordersque 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'