Cada base de datos tiene un conjunto de caracteres y una
colación que no pueden ser nulos. Los comandos CREATE
DATABASE
y ALTER DATABASE
tienen
cláusulas opcionales para especificar el conjunto de caracteres
y colación de la base de datos:
CREATE DATABASEnombre_de_base_de_datos
[[DEFAULT] CHARACTER SETnombre_de_conjunto_de_caracteres
] [[DEFAULT] COLLATEnombre_de_colación
] ALTER DATABASEnombre_de_base_de_datos
[[DEFAULT] CHARACTER SETnombre_de_conjunto_de_caracteres
] [[DEFAULT] COLLATEnombre_de_colación
]
Ejemplo:
CREATE DATABASE nombre_de_base_de_datos
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
MySQL elige el conjunto de caracteres y colación de la base de datos así:
Si tanto CHARACTER SET
como X
COLLATE
se especifican,
entonces el conjunto de caracteres es
Y
X
y la colación
Y
.
Si CHARACTER SET
se especifica sin
X
COLLATE
, entonces el conjunto de
caracteres es X
y la colación es
la de defecto.
En el resto de casos, es el conjunto de caracteres y la colación del servidor.
La sintaxis de MySQL CREATE DATABASE ... DEFAULT
CHARACTER SET ...
es análoga a la sintaxis estándar
SQL CREATE SCHEMA ... CHARACTER SET ...
. Por
ello, es posible crear bases de datos con distintos conjuntos de
caracteres y colaciones en el mismo servidor MySQL.
El conjunto de caracteres de la base de datos y la colación se
usan como valores por defecto para una tabla si no se especifica
el conjunto de caracteres y colación en el comando
CREATE TABLE
. No tienen otro propósito.
El conjunto de caracteres y colación para la base de datos por
defecto están disponibles como los valores de las variables
character_set_database
y
collation_database
. El servidor obtiene
estas variables siempre que la base de datos por defecto cambia.
Si no hay base de datos por defecto, las variables tienen el
mismo valor que las variables correspondiente del lado del
servidor, character_set_server
y
collation_server
.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.