13.1.11 Sentencia CREATE DATABASE
CREATE {DATABASE | SCHEMA} db_name ...create_option: { CHARACTER SET charset_name | COLLATE collation_name}
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 archivo db.opt
en el directorio de la base de datos. La opción CHARACTER SET
especifica el conjunto de caracteres por defecto de la base de datos. La opción COLLATE
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 colaciones disponibles, utilice las sentencias SHOW CHARACTER SET
y SHOW COLLATION
, respectivamente. Consulte la sección 13.7.5.3, “Declaración de conjunto de caracteres SHOW”, y la sección 13.7.5.4, “Declaración de colación SHOW”.
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 y el archivo db.opt
. Las reglas para los nombres de bases de datos permisibles se dan en la Sección 9.2, “Nombres de objetos de esquema”. Si un nombre de base de datos contiene caracteres especiales, el nombre para el 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”.
Si se crea manualmente un directorio bajo el directorio de datos (por ejemplo, con mkdir), el servidor lo considera un directorio de base de datos y aparece en la salida de SHOW DATABASES
.
Cuando cree una base de datos, deje que el servidor gestione 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”.