

# Diferenças na varredura de uma tabela
<a name="SQLtoNoSQL.ReadData.Scan"></a>

No SQL, uma instrução `SELECT` sem uma cláusula `WHERE` retornará cada linha em uma tabela. No Amazon DynamoDB, a operação `Scan` faz a mesma coisa. Em ambos os casos, é possível recuperar todos os itens ou somente alguns deles.

Se você estiver usando um banco de dados SQL ou um NoSQL, as verificações devem ser usadas com moderação, pois elas podem consumir grandes quantidades de recursos do sistema. Às vezes, uma verificação é apropriada (como a verificação de uma pequena tabela) ou inevitável (como a execução de uma exportação de dados em massa). No entanto, como uma regra geral, você deve projetar seus aplicativos para evitar a execução de verificações. Para obter mais informações, consulte [Consultar tabelas no DynamoDB](Query.md).

**nota**  
Fazer uma exportação em massa também cria pelo menos um arquivo por partição. Todos os itens em cada arquivo são do espaço de chave com hash dessa partição específica.

**Topics**
+ [Verificar uma tabela com o SQL](#SQLtoNoSQL.ReadData.Scan.SQL)
+ [Verificar uma tabela no DynamoDB](#SQLtoNoSQL.ReadData.Scan.DynamoDB)

## Verificar uma tabela com o SQL
<a name="SQLtoNoSQL.ReadData.Scan.SQL"></a>

Ao usar o SQL, você pode verificar uma tabela e recuperar todos os respectivos dados usando uma instrução `SELECT` sem especificar uma cláusula `WHERE`. Você pode solicitar uma ou mais colunas no resultado. Ou é possível solicitar todas elas se usar o caractere curinga (\$1).

Veja a seguir exemplos do uso de uma instrução `SELECT`.

```
/* Return all of the data in the table */
SELECT * FROM Music;
```

```
/* Return all of the values for Artist and Title */
SELECT Artist, Title FROM Music;
```

## Verificar uma tabela no DynamoDB
<a name="SQLtoNoSQL.ReadData.Scan.DynamoDB"></a>

No Amazon DynamoDB, você pode usar a API do DynamoDB ou do [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (uma linguagem de consultas compatível com SQL) para executar uma operação de verificação em uma tabela.

------
#### [ DynamoDB API ]

Com a API do DynamoDB, use a operação `Scan` para retornar um ou mais itens e atributos de item ao acessar cada item em uma tabela ou um índice secundário.

```
// Return all of the data in the table
{
    TableName:  "Music"
}
```

```
// Return all of the values for Artist and Title
{
    TableName:  "Music",
    ProjectionExpression: "Artist, Title"
}
```

A operação `Scan` também oferece um parâmetro `FilterExpression`, que pode ser usado para descartar itens que você não deseja que sejam exibidos nos resultados. Uma `FilterExpression` é aplicada após a verificação ser realizada, mas antes que os resultados sejam retornados para você. (Isso não é recomendado com tabelas grandes: você ainda será cobrado por toda a ação `Scan`, mesmo se apenas alguns itens correspondentes forem retornados.)

------
#### [ PartiQL for DynamoDB ]

Com PartiQL, você executa uma varredura usando a operação `ExecuteStatement` para retornar todo o conteúdo de uma tabela usando a instrução `Select`.

```
SELECT AlbumTitle, Year, Price
FROM Music
```

Observe que esta instrução retornará todos os itens para a tabela Music. 

Para obter exemplos de código que usam `Select` e `ExecuteStatement`, consulte [Instruções Select em PartiQL para DynamoDB](ql-reference.select.md).

------