

# Nomear bancos de dados, tabelas e colunas
<a name="tables-databases-columns-names"></a>

Use estas diretrizes para nomear bancos de dados, tabelas e colunas no Athena.

## Requisitos para nome de bancos de dados, tabelas e colunas
<a name="tables-databases-columns-names-requirements"></a>
+ Os caracteres aceitáveis para nomes de bancos de dados, nomes de tabelas e nomes de colunas no AWS Glue devem ser strings em UTF-8 e em minúsculas. Observe que o Athena reduz automaticamente muda para minúsculas todos os nomes em maiúsculas nas consultas DDL ao criar bancos de dados, tabelas ou colunas. A string não pode ter menos do que 1 ou mais de 255 bytes de comprimento.
+ Atualmente, é possível ter espaços iniciais no início dos nomes. Como pode ser difícil detectar esses espaços iniciais e eles podem causar problemas de usabilidade após a criação, evite inadvertidamente criar nomes de objetos que contenham espaços iniciais.
+ Se você usar um modelo [AWS::Glue::Database](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html) do CloudFormation para criar um banco de dados do AWS Glue e não especificar um nome de banco de dados, o AWS Glue gera automaticamente um nome de banco de dados no formato *resource\$1name—random\$1string* que não é compatível com o Athena.
+ Você pode usar o Gerenciador de Catálogos do AWS Glue para renomear colunas, mas não nomes de tabelas ou nomes de banco de dados. Para resolver essa limitação, é necessário usar uma definição do banco de dados antigo para criar um banco de dados com o novo nome. Em seguida, use as definições das tabelas do banco de dados antigo para recriar as tabelas no novo banco de dados. Para isso, você pode usar a AWS CLI ou o SDK do AWS Glue. Para obter as etapas, consulte [Usar a AWS CLI para recriar um banco de dados do AWS Glue e suas tabelas](glue-recreate-db-and-tables-cli.md).

## Usar letras minúsculas nos nomes de tabela e de coluna da tabela no Athena
<a name="table-names-and-table-column-names-in-ate-must-be-lowercase"></a>

O Athena aceita maiúsculas e minúsculas nas consultas DDL e DML, mas usa letras minúsculas nos nomes quando executa a consulta. Por essa razão, evite usar maiúsculas e minúsculas em nomes de tabelas ou colunas, e não confie no uso de letras maiúsculas e minúsculas do Athena para distinguir esses nomes. Por exemplo, se você usar uma instrução DDL para criar uma coluna chamada `Castle`, a coluna criada será mudada para letras minúsculas `castle`. Se você especificar o nome da coluna em uma consulta DML como `Castle` ou `CASTLE`, o Athena mudará o nome para letras minúsculas para você executar a consulta, mas exibirá o cabeçalho da coluna da forma como você escolheu na consulta.

Os nomes de bancos de dados, tabelas e colunas ter, no máximo, 255 caracteres.

## Nomes que começam com um sublinhado
<a name="names-that-begin-with-an-underscore"></a>

Ao criar tabelas, coloque entre acentos graves os nomes de tabelas, visualizações ou colunas que começam com sublinhado. Por exemplo:

```
CREATE EXTERNAL TABLE IF NOT EXISTS `_myunderscoretable`(
  `_id` string, `_index` string)
LOCATION 's3://amzn-s3-demo-bucket/'
```

## Nomes de tabelas, visualizações ou colunas que começam com números
<a name="table-names-that-include-numbers"></a>

Ao executar consultas `SELECT`, `CTAS` ou `VIEW`, coloque entre aspas os identificadores, como nomes de tabelas, visualizações ou colunas, que começam com um dígito. Por exemplo:

```
CREATE OR REPLACE VIEW "123view" AS
SELECT "123columnone", "123columntwo"
FROM "234table"
```

## Nomes de colunas e tipos complexos
<a name="tables-databases-columns-names-complex-types"></a>

Para tipos complexos, apenas caracteres alfanuméricos, sublinhado (`_`) e ponto final (`.`) são permitidos nos nomes de colunas. Para criar uma tabela e mapeamentos para chaves que têm caracteres restritos, você pode usar uma instrução DDL personalizada. Para obter mais informações, consulte o artigo [Create tables in Amazon Athena from nested JSON and mappings using JSONSerDe](https://aws.amazon.com/blogs/big-data/create-tables-in-amazon-athena-from-nested-json-and-mappings-using-jsonserde/) (Criar tabelas no Amazon Athena de JSON e mapeamentos aninhados usando JSONSerDe) no *blog sobre big data da AWS*.

## Palavras reservadas
<a name="tables-databases-columns-names-reserved-words"></a>

Algumas palavras reservadas no Athena devem ser escapadas. Para inserir um caractere de escape em palavras-chave reservadas em instruções DDL, coloque-as entre acentos graves (`). Para usar escape em palavras-chave reservadas em instruções SQL `SELECT` e em consultas em [visualizações](views.md), coloque-as entre aspas duplas ("). 

Para obter mais informações, consulte [Escapar palavras-chave reservadas em consultas](reserved-words.md).

## Recursos adicionais
<a name="tables-databases-columns-names-additional-resources"></a>

Para obter a sintaxe completa de criação de bancos de dados e tabelas, consulte as páginas a seguir.
+ [CREATE DATABASE](create-database.md)
+ [CREATE TABLE](create-table.md)

Para obter mais informações sobre bancos de dados e tabelas no AWS Glue, consulte [Bancos de dados](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-databases.html) e [Tabelas](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html) no *Guia do desenvolvedor do AWS Glue*.