

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 os tipos de dados codificados em JSON 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 cluster nas cláusulas de ordenação. Colunas sem cluster 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 [Carimbos de data/hora do lado do cliente 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).