13.1.12 Sentencia CREATE DATABASE
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name | ENCRYPTION {'Y' | 'N'}}
CREATE DATABASE
crea una base de datos con el nombre dado. Para utilizar esta sentencia, se necesita el privilegio CREATE
para la base de datos. CREATE SCHEMA
es un sinónimo de CREATE DATABASE
.
Se produce un error si la base de datos existe y no se ha especificado IF NOT EXISTS
.
CREATE DATABASE
no está permitido dentro de una sesión que tiene una sentencia LOCK TABLES
activa.
Cada create_option
especifica una característica de la base de datos. Las características de la base de datos se almacenan en el diccionario de datos.
-
La opción
CHARACTER SET
especifica el conjunto de caracteres por defecto de la base de datos. La opciónCOLLATE
especifica la colación por defecto de la base de datos. Para obtener información sobre los nombres de conjuntos de caracteres y cotejos, consulte el capítulo 10, Juegos de caracteres, cotejos y Unicode.Para ver los juegos de caracteres y las colaciones disponibles, utilice las sentencias
SHOW CHARACTER SET
ySHOW COLLATION
, respectivamente. Consulte el apartado 13.7.7.3, «Sentencia SHOW CHARACTER SET», y el apartado 13.7.7.4, «Sentencia SHOW COLLATION». -
La opción
ENCRYPTION
, introducida en MySQL 8.0.16, define la codificación por defecto de la base de datos, que es heredada por las tablas creadas en la base de datos. Los valores permitidos son'Y'
(cifrado activado) y'N'
(cifrado desactivado). Si no se especifica la opciónENCRYPTION
, el valor de la variable de sistemadefault_table_encryption
define el cifrado por defecto de la base de datos. Si la variable de sistematable_encryption_privilege_check
está habilitada, se requiere el privilegioTABLE_ENCRYPTION_ADMIN
para especificar una configuración de cifrado por defecto que difiera de la configuracióndefault_table_encryption
. Para obtener más información, consulte Definición de un valor predeterminado de cifrado para esquemas y espacios de tablas generales.
Una base de datos en MySQL se implementa como un directorio que contiene archivos que corresponden a las tablas de la base de datos. Como no hay tablas en una base de datos cuando se crea inicialmente, la sentencia CREATE DATABASE
crea sólo un directorio bajo el directorio de datos de MySQL. Las reglas para los nombres de bases de datos permisibles se dan en la Sección 9.2, «Nombres de objetos de esquema». Si el nombre de una base de datos contiene caracteres especiales, el nombre del directorio de la base de datos contiene versiones codificadas de esos caracteres como se describe en la Sección 9.2.4, «Mapeo de identificadores a nombres de archivos».
La creación de un directorio de base de datos mediante la creación manual de un directorio bajo el directorio de datos (por ejemplo, con mkdir) no se admite en MySQL 8.0.
Cuando cree una base de datos, deje que el servidor administre el directorio y los archivos que contiene. Manipular los directorios y archivos de la base de datos directamente puede causar inconsistencias y resultados inesperados.
MySQL no tiene límite en el número de bases de datos. El sistema de archivos subyacente puede tener un límite en el número de directorios.
También puede utilizar el programa mysqladmin para crear bases de datos. Consulte la Sección 4.5.2, «mysqladmin – Un programa de administración del servidor MySQL».