

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# CREATE DATABASE
<a name="r_CREATE_DATABASE"></a>

Cria um novo banco de dados.

Para criar um banco de dados, é necessário ser um superusuário ou ter o privilégio CREATEDB. Para criar um banco de dados associado a uma integração ETL zero, é necessário ser um superusuário ou ter os privilégios CREATEDB e CREATEUSER.

Não é possível executar CREATE DATABASE em um bloco de transação (BEGIN ... END). Para obter mais informações sobre transações, consulte [Níveis de isolamento no Amazon Redshift](c_serial_isolation.md). 

## Sintaxe
<a name="r_CREATE_DATABASE-synopsis"></a>

```
CREATE DATABASE database_name 
[ { [ 
      FROM INTEGRATION '<integration_id>'[ DATABASE '<source_database>' ]
      [ SET ]
      [ ACCEPTINVCHARS [=] { TRUE | FALSE }]
      [ QUERY_ALL_STATES [=] { TRUE | FALSE }] 
      [ REFRESH_INTERVAL <interval> ] 
      [ TRUNCATECOLUMNS [=] { TRUE | FALSE } ]
      [ HISTORY_MODE [=] {TRUE | FALSE} ]
    ]
    [ WITH ]
    [ OWNER [=] db_owner ]
    [ CONNECTION LIMIT { limit | UNLIMITED } ]
    [ COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI } ]
    [ ISOLATION LEVEL { SNAPSHOT | SERIALIZABLE } ]
  }
  | { FROM { { ARN '<arn>' } { WITH DATA CATALOG SCHEMA '<schema>' | WITH NO DATA CATALOG SCHEMA } } }
  | { IAM_ROLE  {default | 'SESSION' | 'arn:aws:iam::<account-id>:role/<role-name>' } }
  | { [ WITH PERMISSIONS ] FROM DATASHARE datashare_name OF [ ACCOUNT account_id ] NAMESPACE namespace_guid }
]
```

## Parâmetros
<a name="r_CREATE_DATABASE-parameters"></a>

 *database\_name*   
Nome do novo banco de dados. Para obter mais informações sobre nomes válidos, consulte [Nomes e identificadores](r_names.md).

FROM INTEGRATION '<integration\_id>' [ DATABASE '<source\_database>' ]   
Especifica se o banco de dados deve ser criado usando um identificador de integração ETL zero. É possível recuperar o `integration_id` da visualização do sistema SVV\_INTEGRATION. Em integrações ETL zero do Aurora PostgreSQL, você também precisa especificar o nome `source_database`, que também pode ser recuperado em SVV\_INTEGRATION.  
Para ver um exemplo, consulte [Criar bancos de dados para receber resultados de integrações ETL zero](#r_CREATE_DATABASE-integration). Consulte mais informações sobre a criação de bancos de dados com integrações ETL zero em [Criar bancos de dados de destino no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html) no *Guia de gerenciamento do Amazon Redshift*.

SET  
Palavra-chave opcional.

ACCEPTINVCHARS [=] { TRUE \| FALSE }  
A cláusula ACCEPTINVCHARS define se as tabelas de integração ETL zero devem continuar com a ingestão quando caracteres inválidos são detectados para o tipo de dados VARCHAR. Quando um caractere inválido é encontrado, ele é substituído por um caractere padrão `?`.

QUERY\_ALL\_STATES [=] { TRUE \| FALSE }  
A cláusula QUERY\_ALL\_STATES define se as tabelas de integração ETL zero podem ser consultadas em todos os estados (`Synced`, `Failed`, `ResyncRequired` e `ResyncInitiated`). Por padrão, uma tabela de integração ETL zero só pode ser consultada no estado `Synced`.

REFRESH\_INTERVAL <interval>  
A cláusula REFRESH\_INTERVAL define o intervalo de tempo aproximado, em segundos, para atualizar os dados da origem de ETL zero para o banco de dados de destino. O valor pode ser definido de 0 a 432.000 segundos (5 dias) para integrações ETL zero cujo tipo de fonte é o Aurora MySQL, o Aurora PostgreSQL ou o RDS para MySQL. Para integrações ETL zero do Amazon DynamoDB, o valor pode ser definido de 900 a 432.000 segundos (15 minutos a 5 dias). O `interval` padrão é zero (0) segundo para integrações ETL zero cujo tipo de origem é o Aurora MySQL, o Aurora PostgreSQL ou o RDS para MySQL. Para integrações ETL zero do Amazon DynamoDB, o `interval` padrão é 900 segundos (15 minutos).

TRUNCATECOLUMNS [=] { TRUE \| FALSE }  
A cláusula TRUNCATECOLUMNS define se as tabelas de Integração ETL zero devem continuar com a ingestão quando os valores dos atributos das colunas VARCHAR ou SUPER estão além do limite. Quando `TRUE`, os valores são truncados para caber na coluna e os valores dos atributos JSON em excesso são truncados para caber na coluna SUPER.

HISTORY\_MODE [=] {TRUE \| FALSE}  
Uma cláusula que especifica se o Amazon Redshift vai definir o modo histórico para todas as novas tabelas no banco de dados especificado. Essa opção é aplicável somente para bancos de dados criados para integração ETL zero.  
A cláusula HISTORY\_MODE pode ser definida como `TRUE` ou `FALSE`. O padrão é `FALSE`. Consulte informações sobre HISTORY\_MODE em [History mode](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-history-mode.html) no *Guia de gerenciamento do Amazon Redshift*.

WITH  
Palavra-chave opcional.

OWNER [=] db\_owner  
Especifica o nome de usuário do proprietário do banco de dados.

CONNECTION LIMIT { *limite* \| UNLIMITED }   
Número máximo de conexões de banco de dados que os usuários podem abrir simultaneamente. Não há aplicação de limite para superusuários. Use a palavra-chave UNLIMITED para permitir o número máximo de conexões simultâneas. Um limite no número de conexões para cada usuário também pode ser aplicável. Para obter mais informações, consulte [CREATE USER](r_CREATE_USER.md). O valor padrão é UNLIMITED. Para visualizar as conexões atuais, consulte a exibição [STV\_SESSIONS](r_STV_SESSIONS.md) do sistema.  
Se limites de usuário e de conexão de banco de dados forem aplicáveis, um slot de conexão não utilizado que esteja dentro de ambos os limites deve estar disponível quando um usuário tenta se conectar.

COLLATE { CASE\_SENSITIVE \| CS \| CASE\_INSENSITIVE \| CI }  
Uma cláusula que especifica se a pesquisa ou comparação de string distingue ou não maiúsculas e minúsculas. O padrão é distingue maiúsculas e minúsculas.  
Não é possível usar COLLATE ao criar um banco de dados com base em uma unidade de compartilhamento de dados.  
CASE\_SENSITIVE e CS são intercambiáveis e geram os mesmos resultados. Da mesma forma, CASE\_INSENSITIVE e CI são intercambiáveis e geram os mesmos resultados.

ISOLATION LEVEL { SNAPSHOT \| SERIALIZABLE }  
Uma cláusula que especifica o nível de isolamento usado quando são executadas consultas em um banco de dados. Para acessar mais informações sobre níveis de isolamento, consulte [Níveis de isolamento no Amazon Redshift](c_serial_isolation.md).  
+ Isolamento SNAPSHOT: fornece um nível de isolamento com proteção contra conflitos de atualização e exclusão. Esse é o padrão para um banco de dados criado em um cluster provisionado ou um namespace sem servidor. 
+ Isolamento SERIALIZABLE: fornece serialização total para transações simultâneas. 

FROM ARN '<ARN>'  
O ARN do banco de dados do AWS Glue a ser usado para criar o banco de dados.

{ WITH DATA CATALOG SCHEMA '<esquema>' \| WITH NO DATA CATALOG SCHEMA }  
Esse parâmetro só será aplicável se o comando CREATE DATABASE também usar o parâmetro FROM ARN.
Especifica se o banco de dados deve ser criado usando um esquema para ajudar a acessar objetos no AWS Glue Data Catalog.

IAM\_ROLE { default \| 'SESSION' \| 'arn:aws:iam::{{<Conta da AWS-id>}}:role/{{<role-name>}}' }  
Esse parâmetro só será aplicável se o comando CREATE DATABASE também usar o parâmetro FROM ARN.
Se você especificar um perfil do IAM associado ao cluster ao executar o comando CREATE DATABASE, o Amazon Redshift usará as credenciais do perfil ao executar consultas no banco de dados.  
Especificar a palavra-chave `default` significa usar o perfil do IAM que está definido como padrão e associado ao cluster.  
Use `'SESSION'` se você se conectar ao cluster do Amazon Redshift usando uma identidade federada e acesse as tabelas do esquema externo criado usando esse comando. Para obter um exemplo do uso de uma identidade federada, consulte [Usar uma identidade federada para gerenciar o acesso do Amazon Redshift aos recursos locais e a tabelas externas do Amazon Redshift Spectrum](https://docs.aws.amazon.com/redshift/latest/mgmt/authorization-fas-spectrum.html), que explica como configurar uma identidade federada.   
Use o nome do recurso da Amazon (ARN) de uma função do IAM que seu cluster usa para autenticação e autorização. No mínimo, a função do IAM deve ter permissão para executar uma operação LIST no bucket do Amazon S3 a ser acessado e uma operação GET nos objetos do Amazon S3 que constam no bucket. Para saber mais sobre como usar IAM\_ROLE ao criar um banco de dados usando o AWS Glue Data Catalog para compartilhamentos de dados, consulte [Trabalhar com unidades de compartilhamento de dados gerenciadas pelo Lake Formation como consumidor](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html).  
O exemplo a seguir mostra a sintaxe da string do parâmetro IAM\_ROLE para um único ARN.  

```
IAM_ROLE 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-name>}}'
```
Você pode encadear funções para que seu cluster possa assumir outra função do IAM, possivelmente pertencente a outra conta. Você pode encadear até 10 funções. Para obter mais informações, consulte [Encadeamento de funções do IAM no Amazon Redshift Spectrum](c-spectrum-iam-policies.md#c-spectrum-chaining-roles).   
 Anexe a essa função do IAM uma política de permissões do IAM semelhante à política descrita a seguir.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessSecret",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": "arn:aws:secretsmanager:{{us-west-2}}:{{123456789012}}:secret:my-rds-secret-VNenFy"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*"
        }
    ]
}
```
Para obter as etapas para criar uma função do IAM a ser usada com consulta federada, consulte [Criar um segredo e uma função do IAM para usar consultas federadas](federated-create-secret-iam-role.md).   
Não inclua espaços na lista de funções encadeadas.
O seguinte mostra a sintaxe do encadeamento de três funções.  

```
IAM_ROLE 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-1-name>}},arn:aws:iam::{{<aws-account-id>}}:role/{{<role-2-name>}},arn:aws:iam::{{<aws-account-id>}}:role/{{<role-3-name>}}'
```

## Sintaxe para usar CREATE DATABASE com um datashare
<a name="r_CREATE_DATABASE-datashare-synopsis"></a>

A sintaxe a seguir descreve o comando CREATE DATABASE usado para criar bancos de dados a partir de uma unidade de compartilhamento de dados para compartilhar dados na mesma conta da AWS.

```
CREATE DATABASE database_name
[ [ WITH PERMISSIONS ] FROM DATASHARE datashare_name OF [ ACCOUNT account_id ] NAMESPACE namespace_guid
```

A sintaxe a seguir descreve o comando CREATE DATABASE usado para criar bancos de dados a partir de uma unidade de compartilhamento de dados para compartilhar dados entre contas da AWS.

```
CREATE DATABASE database_name
[ [ WITH PERMISSIONS ] FROM DATASHARE datashare_name OF ACCOUNT account_id NAMESPACE namespace_guid
```

### Parâmetros para usar CREATE DATABASE com um datashare
<a name="r_CREATE_DATABASE-parameters-datashare"></a>

FROM DATASHARE   
Uma palavra-chave que indica onde o datashare está localizado.

 *datashare\_name*   
O nome do datashare no qual o banco de dados do consumidor é criado.

WITH PERMISSIONS  
Especifica que o banco de dados criado a partir da unidade de compartilhamento de dados requer permissões no nível de objeto para ter acesso a objetos do banco de dados individuais. Sem essa cláusula, os usuários ou as funções que receberem a permissão USAGE no banco de dados terão acesso automático a todos os objetos no banco de dados.

 NAMESPACE *namespace\_guid*   
Valor que especifica o namespace de produtor ao qual a unidade de compartilhamento de dados pertence.

ACCOUNT *account\_id*  
Valor que especifica a conta de produtor à qual a unidade de compartilhamento de dados pertence.

## Notas de uso de CREATE DATABASE para compartilhamento de dados
<a name="r_CREATE_DATABASE-usage"></a>

Como superusuário de banco de dados, ao usar CREATE DATABASE para criar bancos de dados a partir de unidades de compartilhamento de dados da conta da AWS, especifique a opção NAMESPACE. A opção ACCOUNT é opcional. Ao usar CREATE DATABASE para criar bancos de dados de unidades de compartilhamento de dados entre contas da AWS, especifique os parâmetros ACCOUNT e NAMESPACE do produtor.

Você pode criar apenas um banco de dados de consumidor para uma unidade de compartilhamento de dados em um cluster de consumidores. Não é possível criar vários bancos de dados de consumidores referentes à mesma unidade de compartilhamento de dados.

## CREATE DATABASE por meio do AWS Glue Data Catalog
<a name="r_CREATE_DATABASE_data-catalog"></a>

Para criar um banco de dados usando um ARN do banco de dados do AWS Glue, especifique o ARN no comando CREATE DATABASE.

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH NO DATA CATALOG SCHEMA;
```

Opcionalmente, você também pode fornecer um valor no parâmetro IAM\_ROLE. Para obter mais informações sobre o parâmetro e os valores aceitos, consulte [Parâmetros](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html#r_CREATE_DATABASE-parameters).

Veja a seguir exemplos que demonstram como criar um banco de dados com base em um ARN usando um perfil do IAM.

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH NO DATA CATALOG SCHEMA IAM_ROLE <iam-role-arn>
```

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH NO DATA CATALOG SCHEMA IAM_ROLE default;
```

Também é possível criar um banco de dados usando um DATA CATALOG SCHEMA.

```
CREATE DATABASE sampledb FROM ARN <glue-database-arn> WITH DATA CATALOG SCHEMA <sample_schema> IAM_ROLE default;
```

## Criar bancos de dados para receber resultados de integrações ETL zero
<a name="r_CREATE_DATABASE-integration"></a>

Para criar um banco de dados usando uma identidade de integração ETL zero, especifique `integration_id` no comando CREATE DATABASE.

```
CREATE DATABASE {{destination_db_name}} FROM INTEGRATION '{{integration_id}}';
```

Por exemplo, primeiro, recupere os IDs de integração de SVV\_INTEGRATION:

```
SELECT integration_id FROM SVV_INTEGRATION;
```

Depois, use um dos IDs de integração recuperados para criar o banco de dados que recebe integrações ETL zero.

```
CREATE DATABASE sampledb FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111';
```

Quando o banco de dados de origem de integrações ETL zero for necessário, especifique, por exemplo:

```
CREATE DATABASE sampledb FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111' DATABASE sourcedb;
```

Você também pode definir um intervalo de atualização para o banco de dados. Por exemplo, para definir o intervalo de atualização como 7.200 segundos para dados de uma fonte de integração ETL zero:

```
CREATE DATABASE myacct_mysql FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111' SET REFRESH_INTERVAL 7200;
```

Consulte a visualização de catálogo SVV\_INTEGRATION para ter informações sobre uma integração ETL zero, como integration\_id, target\_database, source, refresh\_interval, e muito mais.

```
SELECT * FROM svv_integration;
```

O exemplo a seguir cria um banco de dados com base em uma integração com o modo histórico ativado.

```
CREATE DATABASE sample_integration_db FROM INTEGRATION 'a1b2c3d4-5678-90ab-cdef-EXAMPLE11111' SET HISTORY_MODE = true;
```

## Limites de CREATE DATABASE
<a name="r_CREATE_DATABASE-create-database-limits"></a>

O Amazon Redshift aplica esses limites aos bancos de dados:
+ Máximo de 60 bancos de dados definidos pelo usuário por cluster.
+ Máximo de 127 bytes para um nome de banco de dados.
+ Um nome de banco de dados não pode ser uma palavra reservada. 

## Agrupamento de banco de dados
<a name="r_CREATE_DATABASE-collation"></a>

O agrupamento é um conjunto de regras que define como o mecanismo de banco de dados compara e classifica os dados de tipo de caractere em SQL. O agrupamento sem distinção de maiúsculas de minúsculas é o agrupamento mais comumente usado. O Amazon Redshift usa agrupamento sem distinção de maiúsculas e minúsculas para facilitar a migração de outros sistemas de data warehouse. Com o suporte nativo de agrupamento sem distinção de maiúsculas e minúsculas, o Amazon Redshift continua a usar métodos importantes de ajuste ou otimização, como chaves de distribuição, chaves de classificação ou varredura restrita de intervalo. 

A cláusula COLLATE especifica o agrupamento padrão para todas as colunas CHAR e VARCHAR no banco de dados. Se CASE\_INSENSITIVE for especificado, todas as colunas CHAR ou VARCHAR usarão agrupamento sem distinção de maiúsculas e minúsculas. Para obter mais informações sobre agrupamento, consulte [Sequências de colação](c_collation_sequences.md).

Os dados inseridos ou ingeridos em colunas que não diferenciam maiúsculas e minúsculas manterão suas letras originais. Mas todas as operações de string baseadas em comparação, incluindo classificação e agrupamento, são insensíveis a maiúsculas e minúsculas. Operações de correspondência de padrões, como predicados LIKE, semelhantes a, e funções de expressão regular também são insensíveis a maiúsculas e minúsculas.

As seguintes operações SQL suportam semântica de agrupamento aplicável:
+ Operadores de comparação: =, <>, <, <=, >, >=.
+ Operador: LIKE
+ Cláusula ORDER BY
+ Cláusulas GROUP BY
+ Funções agregadas que usam comparação de strings, como MIN, MAX e LISTAGG
+ Funções da janela, como cláusulas PARTITION BY e cláusulas ORDER BY
+ Funções escalares greatest() e least(), STRPOS(), REGEXP\_COUNT(), REGEXP\_REPLACE(), REGEXP\_INSTR(), REGEXP\_SUBSTR()
+ Cláusula distinta
+ UNION, INTERSECT e EXCEPT
+ IN LIST

Para consultas externas, incluindo consultas federadas do Amazon Redshift Spectrum e do Aurora PostgreSQL, o agrupamento da coluna VARCHAR ou CHAR é o mesmo que o agrupamento em nível de banco de dados atual.

O seguinte exemplo consulta uma tabela do Amazon Redshift Spectrum:

```
SELECT ci_varchar FROM spectrum.test_collation
WHERE ci_varchar = 'AMAZON';

ci_varchar
----------
amazon
Amazon
AMAZON
AmaZon
(4 rows)
```

Para obter informações sobre como criar tabelas usando o agrupamento de banco de dados, consulte [CRIAR TABELA](r_CREATE_TABLE_NEW.md).

Para obter mais informações sobre funções COLLATE, consulte [Função COLLATE](r_COLLATE.md).

### Limitações do agrupamento de banco de dados
<a name="r_CREATE_DATABASE-collation-limitations"></a>

Veja as seguintes limitações ao trabalhar com agrupamento de banco de dados no Amazon Redshift:
+ Todas as tabelas ou exibições do sistema, incluindo tabelas de catálogo PG e tabelas de sistema do Amazon Redshift, diferenciam maiúsculas de minúsculas.
+ Quando o banco de dados do consumidor e o banco de dados do produtor têm agrupamentos de nível de banco de dados diferentes, o Amazon Redshift não oferece suporte a consultas entre bancos de dados e entre clusters.
+ O Amazon Redshift não oferece suporte a agrupamento sem distinção de maiúsculas e minúsculas na consulta somente nó líder.

  O seguinte exemplo mostra uma consulta sem distinção entre maiúsculas e minúsculas e o erro que o Amazon Redshift envia:

  ```
  SELECT collate(usename, 'case_insensitive') FROM pg_user;
  ERROR:  Case insensitive collation is not supported in leader node only query.
  ```
+ O Amazon Redshift não oferece suporte à interação entre colunas que diferenciam maiúsculas e minúsculas, como operações de comparação, função, junção ou conjunto.

  Os exemplos a seguir mostram erros quando colunas com e sem diferenciação de maiúsculas e minúsculas interagem:

  ```
  CREATE TABLE test
    (ci_col varchar(10) COLLATE case_insensitive,
     cs_col varchar(10) COLLATE case_sensitive,
     cint int,
     cbigint bigint);
  ```

  ```
  SELECT ci_col = cs_col FROM test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  SELECT concat(ci_col, cs_col) FROM test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  SELECT ci_col FROM test UNION SELECT cs_col FROM test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  SELECT * FROM test a, test b WHERE a.ci_col = b.cs_col;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  Select Coalesce(ci_col, cs_col) from test;
  ERROR:  Query with different collations is not supported yet.
  ```

  ```
  Select case when cint > 0 then ci_col else cs_col end from test;
  ERROR:  Query with different collations is not supported yet.
  ```

Para fazer essas consultas funcionarem, use a função COLLATE para converter o agrupamento de uma coluna para corresponder à outra. Para obter mais informações, consulte [Função COLLATE](r_COLLATE.md).

## Exemplos
<a name="r_CREATE_DATABASE-examples"></a>

**Criação de um banco de dados**  
O exemplo a seguir criar um banco de dados denominado TICKIT e de propriedade do usuário DWUSER.

```
create database tickit
with owner dwuser;
```

Consulte a tabela de catálogo PG\_DATABASE\_INFO para exibir detalhes sobre bancos de dados. 

```
select datname, datdba, datconnlimit
from pg_database_info
where datdba > 1;

 datname     | datdba | datconnlimit
-------------+--------+-------------
 admin       |    100 | UNLIMITED
 reports     |    100 | 100
 tickit      |    100 | 100
```

O exemplo a seguir cria um banco de dados chamado **sampledb** com o nível de isolamento SNAPSHOT.

```
CREATE DATABASE sampledb ISOLATION LEVEL SNAPSHOT;
```

O exemplo a seguir cria o banco de dados sales\_db a partir da unidade de compartilhamento de dados saleshare.

```
CREATE DATABASE sales_db FROM DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
```

### Exemplos de agrupamento de banco de dados
<a name="r_CREATE_DATABASE-collation-examples"></a>

**Criação de um banco de dados que não diferencia maiúsculas de minúsculas**  
O exemplo a seguir cria o banco de dados `sampledb`, a tabela `T1` e insere dados na tabela `T1`.

```
create database sampledb collate case_insensitive;
```

Conecte-se ao novo banco de dados que você acabou de criar usando o cliente SQL. Ao usar o Editor de Consultas do Amazon Redshift v2, escolha o `sampledb` no **Editor**. Ao usar o RSQL, use um comando semelhante ao seguinte.

```
\connect sampledb;
```

```
CREATE TABLE T1 (
  col1 Varchar(20) distkey sortkey
);
```

```
INSERT INTO T1 VALUES ('bob'), ('john'), ('Mary'), ('JOHN'), ('Bob');
```

Em seguida, a consulta encontra resultados com `John`.

```
SELECT * FROM T1 WHERE col1 = 'John';

 col1
 ------
 john
 JOHN
(2 row)
```

**Ordenar por distinção de maiúsculas de minúsculas**  
O exemplo a seguir mostra a ordenação sem distinção de maiúsculas e minúsculas com a tabela T1. A ordenação de *Bob* e *bob* ou *John* e *john* não é determinística porque os nomes são iguais em colunas que não diferenciam maiúsculas de minúsculas.

```
SELECT * FROM T1 ORDER BY 1;

 col1
 ------
 bob
 Bob
 JOHN
 john
 Mary
(5 rows)
```

Da mesma forma, o exemplo a seguir mostra a ordem sem distinção entre maiúsculas e minúsculas com a cláusula GROUP BY. *Bob* e *bob* são iguais e pertencem ao mesmo grupo. Não é determinístico qual aparece no resultado.

```
SELECT col1, count(*) FROM T1 GROUP BY 1;

 col1 | count
 -----+------
 Mary |  1
 bob  |  2
 JOHN |  2
(3 rows)
```

**Consultar com uma função da janela em colunas que não diferenciam maiúsculas e minúsculas**  
O exemplo a seguir consulta uma função da janela em uma coluna que não diferencia maiúsculas e minúsculas.

```
SELECT col1, rank() over (ORDER BY col1) FROM T1;

 col1 | rank
 -----+------
 bob  |   1
 Bob  |   1
 john |   3
 JOHN |   3
 Mary |   5
(5 rows)
```

**Consultar com a palavra-chave DISTINCT**  
O exemplo a seguir cria a tabela `T1` com a palavra-chave DISTINCT.

```
SELECT DISTINCT col1 FROM T1;

 col1
 ------
 bob
 Mary
 john
(3 rows)
```

**Consultar com a cláusula UNION**  
O exemplo a seguir mostra os resultados da UNION das tabelas `T1` e `T2`.

```
CREATE TABLE T2 AS SELECT * FROM T1;
```

```
SELECT col1 FROM T1 UNION SELECT col1 FROM T2;

 col1
 ------
 john
 bob
 Mary
(3 rows)
```