

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Leia dados de uma tabela usando a instrução `SELECT` em CQL no Amazon Keyspaces
<a name="getting-started.dml.read"></a>

Na seção [Inserção e carregamento de dados em uma tabela do Amazon Keyspaces](getting-started.dml.create.md), você usou a instrução `SELECT` para verificar se os dados foram adicionados com sucesso à sua tabela. Nesta seção, você refina o uso de `SELECT` para exibir colunas específicas e somente linhas que atendam a critérios específicos.

A forma geral da instrução `SELECT` é a seguinte.

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

**Topics**
+ [Selecione todos os dados da tabela](#getting-started.dml.read.all)
+ [Selecione um subconjunto de colunas](#getting-started.dml.read.columns)
+ [Selecione um subconjunto de linhas](#getting-started.dml.read.rows)

## Selecione todos os dados da tabela
<a name="getting-started.dml.read.all"></a>

A forma mais simples da instrução `SELECT` retorna todos os dados da tabela.

**Importante**  
 Em um ambiente de produção, normalmente não é uma prática recomendada executar esse comando, que retorna todos os dados da tabela. 

**Para selecionar todos os dados da tabela**

1. Abra AWS CloudShell e conecte-se ao Amazon Keyspaces usando o comando a seguir. Certifique-se de atualizar *us-east-1* com sua própria região. 

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

1. Execute a seguinte consulta .

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

   Usar o caractere curinga (`*`) para o `column_list` selecionar todas as colunas. A saída da instrução deve ser semelhante ao seguinte exemplo.

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

## Selecione um subconjunto de colunas
<a name="getting-started.dml.read.columns"></a>

**Para consultar um subconjunto de colunas**

1. Abra AWS CloudShell e conecte-se ao Amazon Keyspaces usando o comando a seguir. Certifique-se de atualizar *us-east-1* com sua própria região. 

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

1. Para recuperar apenas as colunas `award`, `category` e `year`, execute a seguinte consulta.

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

   A saída contém somente as colunas especificadas na ordem listada na instrução `SELECT`.

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

## Selecione um subconjunto de linhas
<a name="getting-started.dml.read.rows"></a>

Ao consultar um grande conjunto de dados, escolha apenas registros que atendam a determinados critérios. Para fazer isso, você pode acrescentar uma cláusula `WHERE` ao final da instrução `SELECT`.

**Para consultar um subconjunto de linhas**

1. Abra AWS CloudShell e conecte-se ao Amazon Keyspaces usando o comando a seguir. Certifique-se de atualizar *us-east-1* com sua própria região. 

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

1. Para recuperar somente os registros dos prêmios de um determinado ano, execute a consulta a seguir.

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

   A instrução `SELECT` anterior retorna o seguinte resultado.

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

### Entendendo a cláusula `WHERE`
<a name="getting-started.dml.where"></a>

A cláusula `WHERE` é usada para filtrar os dados e retornar somente os dados que atendem aos critérios especificados. Os critérios especificados podem ser uma condição simples ou uma condição composta. 

**Como usar as condições em uma cláusula `WHERE`**
+ Uma condição simples, uma única coluna.

  ```
  WHERE column_name=value
  ```

  Você poderá usar uma condição simples em uma cláusula `WHERE` se uma das seguintes condições for atendida:
  + A coluna é a única coluna de chave de partição da tabela.
  + Você adiciona `ALLOW FILTERING` após a condição na cláusula `WHERE`.

    Esteja ciente de que usar `ALLOW FILTERING` pode resultar em desempenho inconsistente, especialmente em tabelas grandes e multiparticionadas.
+ Uma condição composta, várias condições simples conectadas por `AND`.

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

  É possível usar condições compostas em uma cláusula `WHERE` se uma das condições a seguir for atendida:
  + As colunas que você pode usar na cláusula de `WHERE` precisam incluir todas ou um subconjunto das colunas na chave de partição da tabela. Se quiser usar somente um subconjunto das colunas na cláusula de`WHERE`, você deve incluir um conjunto contíguo de colunas de chave de partição da esquerda para a direita, começando com a coluna principal da chave de partição. Por exemplo, se as colunas da chave de partição forem `year`, `month` e `award`, você poderá usar as seguintes colunas na cláusula de`WHERE`: 
    + `year`
    + `year` E `month`
    + `year` E `month` E `award`
  + Você adiciona `ALLOW FILTERING` após a condição composta na cláusula `WHERE`, como no exemplo a seguir.

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

    Esteja ciente de que usar `ALLOW FILTERING` pode resultar em desempenho inconsistente, especialmente em tabelas grandes e multiparticionadas.

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

Crie suas próprias consultas em CQL para encontrar o seguinte em sua tabela `book_awards`:
+ Encontre os vencedores dos prêmios Wolf 2020 e exiba os títulos e autores dos livros, ordenados por classificação.
+ Mostre os vencedores do primeiro prêmio de todos os prêmios em 2020 e exiba os títulos dos livros e os nomes dos prêmios.