Diferenças na consulta de uma tabela
Outro padrão de acesso comum é a leitura de vários itens de uma tabela, com base em seus critérios de consulta.
Criar uma tabela com o SQL
O uso da instrução SELECT
do SQL permite consultar colunas-chave, colunas que não são chave ou qualquer combinação. A cláusula WHERE
determina quais linhas são retornadas, conforme mostrado nos exemplos a seguir.
/* Return a single song, by primary key */
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today';
/* Return all of the songs by an artist */
SELECT * FROM Music
WHERE Artist='No One You Know';
/* Return all of the songs by an artist, matching first part of title */
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE 'Call%';
/* Return all of the songs by an artist, with a particular word in the title...
...but only if the price is less than 1.00 */
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE '%Today%'
AND Price < 1.00;
Observe que a chave primária dessa tabela consiste em Artist e SongTitle.
Consultar uma tabela no DynamoDB
No Amazon DynamoDB, você pode usar a API do DynamoDB ou do PartiQL (uma linguagem de consultas compatível com SQL) para consultar um item de uma tabela.
- DynamoDB API
-
Com o Amazon DynamoDB, você pode usar a operação Query
para recuperar dados de forma semelhante. A operação Query
oferece acesso rápido e eficiente aos locais físicos onde os dados estão armazenados. Para ter mais informações, consulte Partições e distribuição de dados no DynamoDB.
É possível usar a Query
com qualquer tabela ou índice secundário. É possível especificar uma condição de igualdade para o valor da chave de partição e, se desejar, fornecer outra condição, se definida, ao atributo da chave de classificação.
O parâmetro KeyConditionExpression
especifica os valores de chave que você deseja consultar. Você pode usar uma FilterExpression
opcional para remover determinados itens dos resultados antes que eles sejam retornados para você.
No DynamoDB, você deve usar ExpressionAttributeValues
como espaços reservados em parâmetros de expressão (como KeyConditionExpression
e FilterExpression
). Isso é análogo ao uso de variáveis de ligação em bancos de dados relacionais, onde você substitui os valores reais na instrução SELECT
em tempo de execução.
Observe que a chave primária dessa tabela consiste em Artist e SongTitle.
A seguir há alguns exemplos de Query
no DynamoDB.
// Return a single song, by primary key
{
TableName: "Music",
KeyConditionExpression: "Artist = :a and SongTitle = :t",
ExpressionAttributeValues: {
":a": "No One You Know",
":t": "Call Me Today"
}
}
// Return all of the songs by an artist
{
TableName: "Music",
KeyConditionExpression: "Artist = :a",
ExpressionAttributeValues: {
":a": "No One You Know"
}
}
// Return all of the songs by an artist, matching first part of title
{
TableName: "Music",
KeyConditionExpression: "Artist = :a and begins_with(SongTitle, :t)",
ExpressionAttributeValues: {
":a": "No One You Know",
":t": "Call"
}
}
- PartiQL for DynamoDB
-
Com o PartiQL, é possível realizar uma consulta usando a operação ExecuteStatement
e a instrução Select
na chave de partição.
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know'
Usar a instrução SELECT
desse modo retornará todas as músicas associadas a este Artist
específico.
Para obter exemplos de código que usam Select
e ExecuteStatement
, consulte Instruções Select em PartiQL para DynamoDB.