

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.

# Différences dans l’interrogation d’une table
<a name="SQLtoNoSQL.ReadData.Query"></a>

Un autre modèle commun d’accès est la lecture de plusieurs éléments d’une table, selon les critères de votre requête.

**Topics**
+ [Interrogation d’une table avec SQL](#SQLtoNoSQL.ReadData.Query.SQL)
+ [Interrogation d’une table dans DynamoDB](#SQLtoNoSQL.ReadData.Query.DynamoDB)

## Interrogation d’une table avec SQL
<a name="SQLtoNoSQL.ReadData.Query.SQL"></a>

Lorsque vous utilisez SQL, l’instruction `SELECT` vous permet d’interroger les colonnes clé, les colonnes non-clé ou toute autre combinaison. La clause `WHERE` détermine quelles lignes sont retournées, comme illustré dans les exemples suivants.

```
/* 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, only if the price is less than 1.00 */

SELECT * FROM Music
WHERE Artist='No One You Know'
AND Price < 1.00;
```

Notez que la clé primaire de ce tableau est composée de *Artist* et *SongTitle*.

## Interrogation d’une table dans DynamoDB
<a name="SQLtoNoSQL.ReadData.Query.DynamoDB"></a>

Dans Amazon DynamoDB, vous pouvez interroger un élément à partir d’une table à l’aide de l’API DynamoDB ou de [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (langage de requête compatible SQL).

------
#### [ DynamoDB API ]

Avec Amazon DynamoDB, vous pouvez utiliser l’opération `Query` pour extraire des données de façon similaire. L’opération `Query` fournit un accès rapide et efficace aux emplacements physiques où sont stockées les données. Pour de plus amples informations, veuillez consulter [Partitions et distribution des données dans DynamoDB](HowItWorks.Partitions.md).

Vous pouvez utiliser `Query` avec n’importe quel(le) table ou index secondaire. Vous devez spécifier une condition d’égalité pour la valeur de la clé de partition et, le cas échéant, fournir une autre condition pour l’attribut de la clé de tri s’il est défini.

Le paramètre `KeyConditionExpression` spécifie les valeurs clés que vous souhaitez interroger. Vous pouvez utiliser un paramètre `FilterExpression` facultatif pour supprimer des résultats certains éléments avant qu’ils ne vous soient retournés.

Dans DynamoDB, vous devez utiliser des `ExpressionAttributeValues` comme espaces réservés dans des paramètres d’expression (tels que `KeyConditionExpression` et `FilterExpression`). C’est analogue à l’utilisation des *variables de liaison* des bases de données relationnelles, où vous remplacez les valeurs réelles dans l’instruction `SELECT` au moment de l’exécution.

Notez que la clé primaire de ce tableau est composée de *Artist* et *SongTitle*.

Voici quelques exemples d’actions `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"
    }
}
```

```
// Return all of the songs by an artist, only if the price is less than 1.00

{
    TableName: "Music",
    KeyConditionExpression: "Artist = :a",
    FilterExpression: "Price < :p",
    ExpressionAttributeValues: {
        ":a": "No One You Know",
        ":p": 1.00
    }
}
```

**Note**  
A `FilterExpression` est appliqué après les `Query` lectures des éléments correspondants, il ne réduit donc pas la capacité de lecture consommée. Dans la mesure du possible, modélisez vos données de manière à ce que les conditions de plage `KeyConditionExpression` soient utilisées sur la clé de tri pour des requêtes efficaces. Pour de plus amples informations, veuillez consulter [Interrogation de tables dans DynamoDB](Query.md).

------
#### [ PartiQL for DynamoDB ]

Avec PartiQL, vous pouvez exécuter une requête en utilisant l’opération `ExecuteStatement` et l’instruction `Select` sur la clé de partition.

```
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know'
```

Une telle utilisation de l’instruction `SELECT` renvoie tous les morceaux associés à cet `Artist` spécifique.

Pour des exemples de code utilisant `Select` et `ExecuteStatement`, consultez [Instructions PartiQL de sélection pour DynamoDB](ql-reference.select.md).

------