

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.

# Lire les données d'une table à l'aide de l'`SELECT`instruction CQL dans Amazon Keyspaces
<a name="getting-started.dml.read"></a>

Dans la section [Insertion et chargement de données dans un tableau Amazon Keyspaces](getting-started.dml.create.md), vous avez utilisé l'instruction `SELECT` pour vérifier que vous avez correctement ajouté des données à votre table. Dans cette section, vous affinez votre utilisation de `SELECT` pour afficher des colonnes spécifiques, et uniquement des lignes qui répondent à des critères spécifiques.

La forme générale de l'instruction `SELECT` est la suivante.

```
SELECT column_list FROM table_name [WHERE condition [ALLOW FILTERING]] ;
```

**Topics**
+ [Sélectionnez toutes les données de votre tableau](#getting-started.dml.read.all)
+ [Sélectionnez un sous-ensemble de colonnes](#getting-started.dml.read.columns)
+ [Sélectionnez un sous-ensemble de lignes](#getting-started.dml.read.rows)

## Sélectionnez toutes les données de votre tableau
<a name="getting-started.dml.read.all"></a>

La forme la plus simple de l'instruction `SELECT` renvoie toutes les données de votre table.

**Important**  
 Dans un environnement de production, il n'est généralement pas recommandé d'exécuter cette commande, car elle renvoie toutes les données de votre table. 

**Pour sélectionner toutes les données de votre table**

1. Ouvrez AWS CloudShell et connectez-vous à Amazon Keyspaces à l'aide de la commande suivante. Assurez-vous d'effectuer la mise à jour *us-east-1* avec votre propre région. 

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. Exécutez la requête suivante :

   ```
   SELECT * FROM catalog.book_awards ;
   ```

   Utilisation du caractère générique (`*`) pour que `column_list` sélectionne toutes les colonnes. Le résultat de l'instruction ressemble à l'exemple suivant.

   ```
    year | award            | category    | rank | author             | book_title            | publisher
   ------+------------------+-------------+------+--------------------+-----------------------+---------------
    2020 |             Wolf | Non-Fiction |    1 |        Wang Xiulan |      History of Ideas |  AnyPublisher
    2020 |             Wolf | Non-Fiction |    2 | Ana Carolina Silva |         Science Today | SomePublisher
    2020 |             Wolf | Non-Fiction |    3 |  Shirley Rodriguez | The Future of Sea Ice |  AnyPublisher
    2020 | Kwesi Manu Prize |     Fiction |    1 |         Akua Mansa |     Where did you go? | SomePublisher
    2020 | Kwesi Manu Prize |     Fiction |    2 |        John Stiles |             Yesterday | Example Books
    2020 | Kwesi Manu Prize |     Fiction |    3 |         Nikki Wolf | Moving to the Chateau |  AnyPublisher
    2020 |      Richard Roe |     Fiction |    1 |  Alejandro Rosalez |           Long Summer | SomePublisher
    2020 |      Richard Roe |     Fiction |    2 |        Arnav Desai |               The Key | Example Books
    2020 |      Richard Roe |     Fiction |    3 |      Mateo Jackson |      Inside the Whale |  AnyPublisher
   ```

## Sélectionnez un sous-ensemble de colonnes
<a name="getting-started.dml.read.columns"></a>

**Pour interroger un sous-ensemble de colonnes**

1. Ouvrez AWS CloudShell et connectez-vous à Amazon Keyspaces à l'aide de la commande suivante. Assurez-vous d'effectuer la mise à jour *us-east-1* avec votre propre région. 

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. Pour récupérer uniquement les colonnes `award`, `category` et `year`, exécutez la requête suivante.

   ```
   SELECT award, category, year FROM catalog.book_awards ;
   ```

   La sortie contient uniquement les colonnes spécifiées dans l'ordre indiqué dans l'`SELECT`instruction.

   ```
    award            | category    | year
   ------------------+-------------+------
                Wolf | Non-Fiction | 2020
                Wolf | Non-Fiction | 2020
                Wolf | Non-Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
         Richard Roe |     Fiction | 2020
         Richard Roe |     Fiction | 2020
         Richard Roe |     Fiction | 2020
   ```

## Sélectionnez un sous-ensemble de lignes
<a name="getting-started.dml.read.rows"></a>

Lors de l'interrogation d'un jeu de données volumineux, vous ne souhaitez peut-être que les enregistrements répondant à certains critères. Pour ce faire, vous pouvez ajouter une clause `WHERE` à la fin de notre instruction `SELECT`.

**Pour interroger un sous-ensemble de lignes**

1. Ouvrez AWS CloudShell et connectez-vous à Amazon Keyspaces à l'aide de la commande suivante. Assurez-vous d'effectuer la mise à jour *us-east-1* avec votre propre région. 

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. Pour récupérer uniquement les dossiers relatifs aux récompenses d'une année donnée, exécutez la requête suivante.

   ```
   SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Wolf' ;
   ```

   L'`SELECT`instruction précédente renvoie le résultat suivant.

   ```
    year | award | category    | rank | author             | book_title            | publisher
   ------+-------+-------------+------+--------------------+-----------------------+---------------
    2020 |  Wolf | Non-Fiction |    1 |        Wang Xiulan |      History of Ideas |  AnyPublisher
    2020 |  Wolf | Non-Fiction |    2 | Ana Carolina Silva |         Science Today | SomePublisher
    2020 |  Wolf | Non-Fiction |    3 |  Shirley Rodriguez | The Future of Sea Ice |  AnyPublisher
   ```

### Comprendre la `WHERE` clause
<a name="getting-started.dml.where"></a>

La clause `WHERE` est utilisée pour filtrer les données et renvoyer uniquement celles qui répondent aux critères spécifiés. Les critères spécifiés peuvent être une condition simple ou une condition composée. 

**Comment utiliser les conditions dans une clause `WHERE`**
+ Une condition simple : une seule colonne.

  ```
  WHERE column_name=value
  ```

  Vous pouvez utiliser une condition simple dans une clause `WHERE` si l'une des conditions suivantes est remplie :
  + La colonne est la seule colonne clé de partition de la table.
  + Vous ajoutez `ALLOW FILTERING` après la condition de la clause `WHERE`.

    Sachez que l'utilisation d'`ALLOW FILTERING` peut entraîner des performances incohérentes, en particulier avec les tables volumineuses et à plusieurs partitions.
+ Une condition composée — Plusieurs conditions simples reliées par`AND`.

  ```
  WHERE column_name1=value1 AND column_name2=value2 AND column_name3=value3...
  ```

  Vous pouvez utiliser des conditions composées dans une clause `WHERE` si l'une des conditions suivantes est remplie :
  + Les colonnes que vous pouvez utiliser dans la `WHERE` clause doivent inclure la totalité ou un sous-ensemble des colonnes de la clé de partition de la table. Si vous souhaitez utiliser uniquement un sous-ensemble des colonnes de la `WHERE` clause, vous devez inclure un ensemble contigu de colonnes de clé de partition de gauche à droite, en commençant par la première colonne de la clé de partition. Par exemple, si les colonnes de clé de partition sont `year``month`,, `award` vous pouvez utiliser les colonnes suivantes dans la `WHERE` clause : 
    + `year`
    + `year`ET `month`
    + `year`ET `month` ET `award`
  + Vous ajoutez `ALLOW FILTERING` après la condition composée dans la clause `WHERE`, comme dans l'exemple suivant.

    ```
    SELECT * FROM my_table WHERE col1=5 AND col2='Bob' ALLOW FILTERING ;
    ```

    Sachez que l'utilisation d'`ALLOW FILTERING` peut entraîner des performances incohérentes, en particulier avec les tables volumineuses et à plusieurs partitions.

### Essayez-le
<a name="getting-started.dml.try"></a>

Créez vos propres requêtes CQL pour trouver les éléments suivants dans votre table `book_awards` :
+ Trouvez les gagnants des Wolf Awards 2020 et affichez les titres et les auteurs des livres, classés par rang.
+ Afficher les premiers gagnants de tous les prix en 2020 et afficher les titres des livres et les noms des récompenses.