

# Diferenças entre obter informações de tabela de um banco de dados relacional (SQL) e do DynamoDB
<a name="SQLtoNoSQL.GetTableInfo"></a>

Você pode verificar se uma tabela foi criada de acordo com suas especificações. Em um banco de dados relacional, todo o esquema da tabela é mostrado. As tabelas do Amazon DynamoDB não têm esquemas, portanto, somente os atributos de chave primária são mostrados.

**Topics**
+ [Obter informações sobre uma tabela com o SQL](#SQLtoNoSQL.GetTableInfo.SQL)
+ [Obter informações sobre uma tabela no DynamoDB](#SQLtoNoSQL.GetTableInfo.DynamoDB)

## Obter informações sobre uma tabela com o SQL
<a name="SQLtoNoSQL.GetTableInfo.SQL"></a>

A maioria dos sistemas de gerenciamento de bancos de dados relacionais (RDBMS) permitem que você descreva a estrutura de uma tabela – colunas, tipos de dados, definição de chave primária, e assim por diante. Não há nenhuma maneira padrão de fazer isso no SQL. No entanto, muitos sistemas de banco de dados fornecem um comando `DESCRIBE`. Veja a seguir um exemplo do MySQL.

```
DESCRIBE Music;
```

Isso retorna a estrutura de sua tabela, com todos os nomes de colunas, tipos de dados e tamanhos.

```
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| Artist     | varchar(20) | NO   | PRI | NULL    |       |
| SongTitle  | varchar(30) | NO   | PRI | NULL    |       |
| AlbumTitle | varchar(25) | YES  |     | NULL    |       |
| Year       | int(11)     | YES  |     | NULL    |       |
| Price      | float       | YES  |     | NULL    |       |
| Genre      | varchar(10) | YES  |     | NULL    |       |
| Tags       | text        | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
```

A chave primária dessa tabela consiste em *Artist* e *SongTitle*.

## Obter informações sobre uma tabela no DynamoDB
<a name="SQLtoNoSQL.GetTableInfo.DynamoDB"></a>

O DynamoDB tem uma operação `DescribeTable`, que é semelhante. O único parâmetro é o nome da tabela.

```
{
    TableName : "Music"
}
```

A resposta de `DescribeTable` é semelhante ao seguinte.

```
{
  "Table": {
    "AttributeDefinitions": [
      {
        "AttributeName": "Artist",
        "AttributeType": "S"
      },
      {
        "AttributeName": "SongTitle",
        "AttributeType": "S"
      }
    ],
    "TableName": "Music",
    "KeySchema": [
      {
        "AttributeName": "Artist",
        "KeyType": "HASH"  //Partition key
      },
      {
        "AttributeName": "SongTitle",
        "KeyType": "RANGE"  //Sort key
      }
    ],

    ...
```

`DescribeTable` também retorna informações sobre índices na tabela, configurações de throughput provisionado, uma contagem aproximada de itens e outros metadados.