Diferencias al consultar una tabla
Otro patrón de acceso habitual consiste en leer varios elementos de una tabla, según los criterios de consulta.
Consulta de una tabla con SQL
Al utilizar SQL, la instrucción SELECT
permite realizar consultas por columnas de clave, columnas que no son de clave o cualquier combinación de ellas. La cláusula WHERE
determina qué filas se devuelven, como se muestra en los ejemplos siguientes.
/* 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 la clave principal de esta tabla consta de Artist y SongTitle.
Consulta de una tabla en DynamoDB
En Amazon DynamoDB, puede utilizar la API de DynamoDB o PartiQL (un lenguaje de consulta compatible con SQL) para consultar un elemento de una tabla.
- DynamoDB API
-
Con Amazon DynamoDB, puede utilizar la operación Query
para recuperar datos de manera parecida. La operación Query
proporciona un acceso rápido y eficiente a las ubicaciones físicas en las que se almacenan los datos. Para obtener más información, consulte Particiones y distribución de datos en DynamoDB.
Se puede utilizar Query
con cualquier tabla o índice secundario. Debe especificar una condición de igualdad para el valor de la clave de partición y, si lo desea, puede proporcionar otra condición para el atributo de clave de clasificación si está definido.
El parámetro KeyConditionExpression
especifica los valores de clave que se desea consultar. Puede utilizar una expresión FilterExpression
opcional para eliminar algunos elementos de los resultados antes de que se devuelvan.
En DynamoDB, debe usar ExpressionAttributeValues
como marcador de posición en los parámetros de las expresiones (tales como KeyConditionExpression
y FilterExpression
). Esto es análogo al uso de las variables de vínculo de las bases de datos relacionales, que se sustituyen en la instrucción SELECT
por los valores reales en tiempo de ejecución.
Observe que la clave principal de esta tabla consta de Artist y SongTitle.
A continuación, se muestran algunos ejemplos de Query
de 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
-
Con PartiQL, puede hacer una consulta mediante la operación ExecuteStatement
y la instrucción Select
sobre la clave de partición.
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know'
El uso de la instrucción SELECT
de esta manera devuelve todas las canciones asociadas a este Artist
en particular.
Para obtener ejemplos de código mediante Select
y ExecuteStatement
, consulte Instrucciones de selección de PartiQL para DynamoDB.