Usando CREATE DATABASE creamos una base de datos (BD) vacía, seguido escribimos el nombre de la BD a crear, el cual no debe exceder de 64 caracteres y no debe coincidir con algún nombre o palabra reservada. Cuando creas una BD, el MySQL server crea un directorio bajo su directorio de datos (data directory), las BD son almacenadas en esa locación común. El nuevo subdirectorio es llamado directorio de la base de datos (database directory), el cual tiene el mismo nombre de la BD , que representa cada BD dentro del data directory. El data directory por lo tanto es el padre de todos los database directories. MySQL usa el database directory para administrar los componentes de la BD como por ejm. sus tablas. Un database directory puede contener archivos para otros objetos de base de datos como por ejm. triggers. El servidor también crea un archivo 'db.opt' en el database directory para almacenar los atributos de la BD.
CREATE DATABASE bdEjemplo;
Otra palabra para BD en MySQL es SCHEMA que puede ser usado en lugar de DATABASE
CREATE SCHEMA bdEjemplo;En Windows el nombre de las BD son convertidas a minusculas, por que los nombres de los archivos y directorios del windows son case insensitive, pero en Linux y otros similares son case sensitive. Si el nombre contiene caracteres especiales, números o espacios, debe estar dentro de 2 operadores backtick( ` )
CREATE DATABASE `bdespañol`;
CREATE DATABASE `bd con espacios`;
CREATE DATABASE `666`;Antes de crear la BD debemos de asegurarnos de tener los suficientes privilegios para llevar a cabo esa acción y también que no exista una BD con el mismo nombre. Para lo último podemos usar el siguiente script
CREATE DATABASE IF NOT EXIST bdEjemplo;Con la palabra reservada IF NOT EXIST nos aseguramos de crear la BD solo si no existe anteriormente, si la BD existe entonces el comamdo nos retorna un error y no habrá cambios en el servidor. También a la BD podemos asignarle el tipo de codificación/juego de caracteres(charset) que deseas usar (ejm. UTF-8, latin1,etc) usando la palabra reservada CHARACTER SET. Un character set o charset es el conjunto de carcteres disponibles que pueden ser usados(similar a un alfabeto), diferentes lenguas tienen diferentes alfabetos y amenudo diferentes caracteres. Para obtener la lista de charsets soportados podemos usar la siguiente sentencia en la consola
SHOW CHARACTER SET;Seguido podemos asignarle también el collation (conjunto de reglas usadas por MySQL para comparar los caracteres) usando la palabra reservada COLLATE (ejm. utf8_icelandic_ci). Un collation especifica la clasificación del orden léxico(a,b,c, etc.) Para ver la lista de collations usamos el siguiente script
SHOW COLLATION;El script resultante del uso de ambos(character ser y collate) sería como este
CREATE DATABASE bdEjemplo CHARACTER SET utf8 COLLATE utf8_icelandic_ci;En caso de no especificar el charset y el collartion, se tomaran los valores por defecto del MySQL (Latin-1). Si solo utilizas CHARACTER SET, se usa el collation que esta por defecto. Si solo se usa COLLATE, la primera parte del nombre del collation determina el charset (utf8_icelandic_ci -> utf8).
Cada database directory tiene un character set y collation por defecto, el cual se especifican al crear la BD. Estas propiedades son almacenadas en el archivo 'bd.opt'.
OBTENER METADATA DE LA BD
La BD 'information_schema' tiene una tabla 'schemata' que contiene la metadata de las BD (información sobre las BD). Para mostrar información acerca de nuestra BD usamos la siguiente declaración
SELECT * FROM information_schema.schemata WHERE schema_name = 'bdEjemplo';Para ver la configuración de tu BD puedes usar SHOW CREATE DATABASE seguido del nombre de la BD
SHOW CREATE DATABASE bdEjemplo;
Al final de todo puedes verificar la existencia de tu BD recién creada y de otras mas, puedes usar el siguiente script: SHOW DATABASES y seguido, opcionalmente el modificador LIKE (seguido del nombre o parte del nombre seguido de un %) si no sabes exactamente el nombre de la BD y si quieres ser mas preciso en tu búsqueda.
SHOW DATABASES LIKE 'bdEj%';MODIFICAR UNA BD
Si deseamos modificar los características globales de la BD (solo charset y collation), usamos la palabra reservada ALTER y al final los nuevos valores de CHARACTER SET y COLLATE. Al menos uno de ellos debe ser modificado. Si se omite el nombre de la BD, los cambios se aplican a la BD que esté por defecto. Esta modificaciones no se aplican a renombrar la BD, para ello se deberá crear una nueva y eliminar la anterior.
ALTER DATABASE bdEjemplo CHARACTER SET utf8 COLLATE utf8_icelandic_ci;
ALTER DATABASE bdEjemplo COLLATE utf8_icelandic_ci;
ALTER DATABASE bdEjemplo CHARACTER SET utf8;
/*los cambios se aplican a la BD que está por defecto*/ ALTER DATABASE CHARACTER SET utf8 COLLATE utf8_icelandic_ci;
ELIMINAR UNA BD
Si deseas eliminar una BD creada previamente, debes usar la palabra reservada DROP DATABASE seguido por el nombre de la BD. Con eso se eliminara definitivamente(con tablas triggers, etc) y no habrá opción a recuperar o deshacer la acción
DROP DATABASE bdEjemplo;Para asegurarnos de eliminar la BD solo si existe usamos IF EXISTS
DROP DATABASE IF EXISTS bdEjemplo;
SELECCIONAR UNA BD
Para seleccionar una BD antes de algún script usamos USE seguido por el nombre de la BD. Puedes usarlo las veces que quieras para cambiar de BD y no limita el uso de tablas de otras BD
USE bdEjemplo;