

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Leggi i dati da una tabella utilizzando l'`SELECT`istruzione CQL in Amazon Keyspaces
<a name="getting-started.dml.read"></a>

Nella [Inserimento e caricamento di dati in una tabella Amazon Keyspaces](getting-started.dml.create.md) sezione, hai utilizzato l'`SELECT`istruzione per verificare di aver aggiunto correttamente i dati alla tabella. In questa sezione, si perfeziona l'uso `SELECT` per visualizzare colonne specifiche e solo le righe che soddisfano criteri specifici.

La forma generale della `SELECT` dichiarazione è la seguente.

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

**Topics**
+ [Seleziona tutti i dati nella tua tabella](#getting-started.dml.read.all)
+ [Seleziona un sottoinsieme di colonne](#getting-started.dml.read.columns)
+ [Seleziona un sottoinsieme di righe](#getting-started.dml.read.rows)

## Seleziona tutti i dati nella tua tabella
<a name="getting-started.dml.read.all"></a>

La forma più semplice dell'`SELECT`istruzione restituisce tutti i dati della tabella.

**Importante**  
 In un ambiente di produzione, in genere non è consigliabile eseguire questo comando, poiché restituisce tutti i dati della tabella. 

**Per selezionare tutti i dati della tabella**

1. Apri AWS CloudShell e connettiti ad Amazon Keyspaces utilizzando il seguente comando. Assicurati di eseguire l'aggiornamento *us-east-1* con la tua regione. 

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

1. Esegui la seguente query.

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

   Usa il carattere jolly (`*`) per `column_list` selezionare tutte le colonne. L'output dell'istruzione è simile all'esempio seguente.

   ```
    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
   ```

## Seleziona un sottoinsieme di colonne
<a name="getting-started.dml.read.columns"></a>

**Per eseguire una query per un sottoinsieme di colonne**

1. Apri AWS CloudShell e connettiti ad Amazon Keyspaces utilizzando il seguente comando. Assicurati di eseguire l'aggiornamento *us-east-1* con la tua regione. 

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

1. Per recuperare solo le `year` colonne`award`, e`category`, esegui la seguente query.

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

   L'output contiene solo le colonne specificate nell'ordine elencato nell'`SELECT`istruzione.

   ```
    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
   ```

## Seleziona un sottoinsieme di righe
<a name="getting-started.dml.read.rows"></a>

Quando si esegue una query su un set di dati di grandi dimensioni, è possibile che si desiderino solo record che soddisfino determinati criteri. A tale scopo, puoi aggiungere una `WHERE` clausola alla fine della nostra dichiarazione. `SELECT`

**Per eseguire una ricerca su un sottoinsieme di righe**

1. Apri AWS CloudShell e connettiti ad Amazon Keyspaces utilizzando il seguente comando. Assicurati di eseguire l'aggiornamento *us-east-1* con la tua regione. 

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

1. Per recuperare solo i record relativi ai premi di un determinato anno, esegui la seguente query.

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

   L'`SELECT`istruzione precedente restituisce l'output seguente.

   ```
    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
   ```

### Comprensione della clausola `WHERE`
<a name="getting-started.dml.where"></a>

La `WHERE` clausola viene utilizzata per filtrare i dati e restituire solo i dati che soddisfano i criteri specificati. I criteri specificati possono essere una condizione semplice o una condizione composta. 

**Come utilizzare le condizioni in una `WHERE` clausola**
+ Una condizione semplice: una singola colonna.

  ```
  WHERE column_name=value
  ```

  È possibile utilizzare una condizione semplice in una `WHERE` clausola se viene soddisfatta una delle seguenti condizioni:
  + La colonna è l'unica colonna chiave di partizione della tabella.
  + Si aggiunge `ALLOW FILTERING` dopo la condizione nella `WHERE` clausola.

    Tieni presente che l'utilizzo `ALLOW FILTERING` può comportare prestazioni incoerenti, specialmente con tabelle di grandi dimensioni e multipartizionate.
+ Una condizione composta: più condizioni semplici collegate da. `AND`

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

  È possibile utilizzare condizioni composte in una `WHERE` clausola se viene soddisfatta una delle seguenti condizioni:
  + Le colonne che è possibile utilizzare nella `WHERE` clausola devono includere tutte o un sottoinsieme delle colonne nella chiave di partizione della tabella. Se si desidera utilizzare solo un sottoinsieme delle colonne della `WHERE` clausola, è necessario includere un insieme contiguo di colonne chiave di partizione da sinistra a destra, a partire dalla colonna principale della chiave di partizione. Ad esempio, se le colonne della chiave di partizione sono `year``month`, e `award` allora è possibile utilizzare le seguenti colonne nella clausola: `WHERE` 
    + `year`
    + `year`E `month`
    + `year`E `month` E `award`
  + Si aggiunge `ALLOW FILTERING` dopo la condizione composta nella `WHERE` clausola, come nell'esempio seguente.

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

    Tieni presente che l'utilizzo `ALLOW FILTERING` può comportare prestazioni incoerenti, specialmente con tabelle di grandi dimensioni e multipartizionate.

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

Crea le tue query CQL per trovare quanto segue dalla tua `book_awards` tabella:
+ Trova i vincitori dei premi Wolf 2020 e mostra i titoli e gli autori dei libri, ordinati per classifica.
+ Mostra i vincitori del primo premio di tutti i premi del 2020 e mostra i titoli dei libri e i nomi dei premi.