13.1.12 CREATE DATABASE Statement
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}
CREATE DATABASE
cria uma base de dados com o nome dado. Para usar esta declaração, você precisa do privilégio CREATE
para a base de dados. CREATE SCHEMA
é um sinónimo de CREATE DATABASE
.
ocorre um erro se a base de dados existe e você não especificou IF NOT EXISTS
.
CREATE DATABASE
não é permitido dentro de uma sessão que tenha uma declaração activa LOCK TABLES
.
Cada create_option
especifica uma característica do banco de dados. As características da base de dados são armazenadas no dicionário de dados.
-
A opção
CHARACTER SET
especifica o conjunto de caracteres padrão da base de dados. A opçãoCOLLATE
especifica o agrupamento padrão da base de dados. Para informações sobre conjunto de caracteres e nomes de agrupamento, consulte o Capítulo 10, Conjuntos de Caracteres, Agrupamentos, Unicode.Para ver os conjuntos de caracteres e agrupamentos disponíveis, use as instruções
SHOW CHARACTER SET
eSHOW COLLATION
, respectivamente. Veja Seção 13.7.7.3, “Declaração SHOW CHARACTER SET”, e Seção 13.7.7.4, “Declaração SHOW COLLATION”. -
A opção
ENCRYPTION
, introduzida no MySQL 8.0.16, define a criptografia padrão da base de dados, que é herdada por tabelas criadas na base de dados. Os valores permitidos são'Y'
(criptografia habilitada) e'N'
(criptografia desabilitada). Se a opçãoENCRYPTION
não for especificada, o valor da variável de sistemadefault_table_encryption
define a criptografia padrão do banco de dados. Se a variáveltable_encryption_privilege_check
estiver ativada, aTABLE_ENCRYPTION_ADMIN
privilégio é necessário para especificar uma configuração padrão de criptografia que difere da configuraçãodefault_table_encryption
. Para mais informações, veja Definindo um Padrão de Criptografia para Esquemas e Tabelas Gerais.
Um banco de dados no MySQL é implementado como um diretório contendo arquivos que correspondem a tabelas no banco de dados. Como não há tabelas em uma base de dados quando ela é inicialmente criada, a instrução CREATE DATABASE
cria apenas um diretório sob o diretório de dados do MySQL. As regras para os nomes permitidos da base de dados são dadas na Secção 9.2, “Nomes de objectos do esquema”. Se um nome de base de dados contém caracteres especiais, o nome para o diretório da base de dados contém versões codificadas desses caracteres como descrito na Seção 9.2.4, “Mapeamento de Identificadores para Nomes de Arquivos”.
Criar um diretório de banco de dados criando manualmente um diretório sob o diretório de dados (por exemplo, com mkdir) não é suportado no MySQL 8.0.
Quando você cria um banco de dados, deixe o servidor gerenciar o diretório e os arquivos nele contidos. Manipular diretórios e arquivos de banco de dados diretamente pode causar inconsistências e resultados inesperados.
O MySQL não tem limite para o número de bases de dados. O sistema de arquivos subjacente pode ter um limite no número de diretórios.
Você também pode usar o programa mysqladmin para criar bases de dados. Veja Seção 4.5.2, “mysqladmin – A MySQL Server Administration Program”.