

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á.

# SELECT
<a name="cql.dml.select"></a>

Use uma instrução SELECT para consultar dados. 

**Sintaxe**

```
select_statement ::=  SELECT  [ JSON ] ( select_clause | '*' )
                      FROM table_name
                      [ WHERE 'where_clause' ]
                      [ ORDER BY 'ordering_clause' ]
                      [ LIMIT (integer | bind_marker) ]
                      [ ALLOW FILTERING ]
select_clause    ::=  selector [ AS identifier ] ( ',' selector [ AS identifier ] )
selector         ::=  column_name
                      | term
                      | CAST '(' selector AS cql_type ')'
                      | function_name '(' [ selector ( ',' selector )* ] ')'
where_clause     ::=  relation ( AND relation )*
relation         ::=  column_name operator term
                      TOKEN
operator         ::=  '=' | '<' | '>' | '<=' | '>=' | IN | CONTAINS | CONTAINS KEY
ordering_clause  ::=  column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*
```

**Exemplos**

```
SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;

SELECT JSON name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;
```

Para obter uma tabela que mapeia JSON-encoded os tipos de dados para os tipos de dados do Amazon Keyspaces, consulte. [Codificação JSON dos tipos de dados do Amazon Keyspaces](cql.elements.md#cql.data-types.JSON)

**Usando a palavra-chave `IN`**

A palavra-chave `IN` especifica igualdade para um ou mais valores. Ela pode ser aplicada à chave de partição e à coluna de cluster. Os resultados são retornados na ordem em que as chaves são apresentadas na declaração `SELECT`.

**Exemplos**

```
SELECT * from {{mykeyspace.mytable}} WHERE primary.key1 IN (1,2) and clustering.key1 = 2;
SELECT * from {{mykeyspace.mytable}} WHERE primary.key1 IN (1,2) and clustering.key1 <= 2;
SELECT * from {{mykeyspace.mytable}} WHERE primary.key1 = 1 and clustering.key1 IN (1, 2);
SELECT * from {{mykeyspace.mytable}} WHERE primary.key1 <= 2 and clustering.key1 IN (1, 2) ALLOW FILTERING;
```

Para obter mais informações sobre a palavra-chave `IN` e como o Amazon Keyspaces processa a declaração, consulte [Como usar o operador `IN` com a Instrução `SELECT` em uma consulta no Amazon Keyspaces](in.select.md).

**Como ordenar resultados**

A cláusula `ORDER BY` especifica a ordem de classificação dos resultados retornados. Ela usa como argumentos uma lista de nomes de colunas junto com a ordem de classificação de cada coluna. Você só pode especificar colunas de agrupamento nas cláusulas de ordenação. Non-clusteringcolunas não são permitidas. As opções de ordem de classificação são `ASC` para ordem de classificação crescente e `DESC` para decrescente. Se a ordem de classificação for omitida, a ordem padrão da coluna de cluster será usada. Para possíveis ordens de classificação, consulte [Ordenar resultados com `ORDER BY` no Amazon Keyspaces](ordering-results.md).

**Exemplo**

```
SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;
```

Ao usar `ORDER BY` com a palavra-chave `IN`, os resultados são ordenados em uma página. A reordenação completa com paginação desativada não é compatível.

**TOKEN**

Você pode aplicar a função `TOKEN` à coluna `PARTITION KEY` nas cláusulas `SELECT` e `WHERE`. Com a função `TOKEN`, o Amazon Keyspaces retorna linhas com base no valor do token mapeado do `PARTITION_KEY` e não no valor do `PARTITION KEY`.

As relações `TOKEN` não são compatíveis com a palavra-chave `IN`.

**Exemplos**

```
SELECT TOKEN(id) from {{my_table}}; 

SELECT TOKEN(id) from {{my_table}} WHERE TOKEN(id) > 100 and TOKEN(id) < 10000;
```

**Função TTL**

Você pode usar a função `TTL` com a instrução `SELECT` para recuperar o tempo de expiração em segundos armazenado em uma coluna. Se nenhum valor de um conjunto for `TTL`, a função retorna `null`.

**Exemplo**

```
SELECT TTL({{my_column}}) from {{my_table}};
```

A função `TTL` não pode ser usada em colunas com várias células, como coleções.

**Função do WRITETIME**

Você pode usar a função `WRITETIME` com a instrução `SELECT` para recuperar o carimbo de data/hora armazenado como metadados para o valor de uma coluna somente se a tabela usar carimbos de data e hora do lado do cliente. Para obter mais informações, consulte [Client-side timestamps no Amazon Keyspaces](client-side-timestamps.md). 

```
SELECT WRITETIME({{my_column}}) from {{my_table}};
```

A função `WRITETIME` não pode ser usada em colunas com várias células, como coleções.

**nota**  
Para compatibilidade com o comportamento estabelecido do driver Cassandra, as políticas de autorização baseadas em tags não são aplicadas quando você executa operações em tabelas do sistema usando chamadas de API do Cassandra Query Language (CQL) por meio de drivers e ferramentas de desenvolvedor do Cassandra. Para obter mais informações, consulte [Acesso a recursos do Amazon Keyspaces com base em tags](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-tags).