Crear y eliminar bases de datos

Al escribir consultas SQL trabajamos constantemente con tablas. Las tablas, a su vez, se guardan dentro de bases de datos concretas, y de ellas trata este artículo.

Crear una base de datos

Para crear una base de datos se usa la siguiente sintaxis:

MySQL 8.4
CREATE DATABASE nombre_base_datos;
nombre_base_datos
El nombre de la nueva base de datos.

En el nombre de una base de datos se suelen usar letras, dígitos y los símbolos «_» y «$». La longitud máxima del nombre es de 64 caracteres.

Puedes comprobar que la base de datos se ha creado con la sentencia SHOW DATABASES.

MySQL 8.4
SHOW DATABASES;
Database
user_table_1
user_table_2
information_schema
mysql
performance_schema
sys

Si el nombre de la base de datos se escribe sin comillas dobles, debe empezar por una letra o por el símbolo «_». A continuación se pueden usar letras, dígitos y los símbolos «_» y «$». La longitud máxima del nombre es de 63 caracteres.

Puedes comprobar que la base de datos se ha creado con esta consulta SQL:

MySQL 8.4
SELECT datname FROM pg_database WHERE datistemplate = false;
datname
user_database_1
user_database_2
postgres

Eliminar una base de datos

Una base de datos se elimina con la sentencia DROP DATABASE:

MySQL 8.4
DROP DATABASE nombre_base_datos;
nombre_base_datos

La base de datos que hay que eliminar junto con todas sus tablas.

IF EXISTS e IF NOT EXISTS

Al crear o eliminar una base de datos puede producirse un error: por ejemplo, si ya existe una base de datos con ese nombre o, al contrario, si todavía no se ha creado. Para estos casos se usan las cláusulas IF EXISTS e IF NOT EXISTS.

Es decir, si queremos crear una base de datos solo en caso de que todavía no exista, se usa la siguiente sintaxis:

MySQL 8.4
CREATE DATABASE IF NOT EXISTS nombre_base_datos;
IF NOT EXISTS

Crea la base de datos solo si todavía no existe ninguna con ese nombre. Si existe, la consulta no hace nada y no da error.

Palabra clave
nombre_base_datos
El nombre de la nueva base de datos.

Si queremos eliminar una base de datos solo en caso de que exista, se usa la siguiente sintaxis:

MySQL 8.4
DROP DATABASE IF EXISTS nombre_base_datos;
IF EXISTS

Elimina la base de datos solo si existe. Si no, la consulta no hace nada y no da error.

Palabra clave
nombre_base_datos
La base de datos que hay que eliminar.

IF EXISTS

Al eliminar una base de datos puede producirse un error si esa base de datos no existe. En este caso puedes usar la cláusula IF EXISTS.

Para eliminar una base de datos puedes usar la cláusula IF EXISTS:

MySQL 8.4
DROP DATABASE IF EXISTS nombre_base_datos;
IF EXISTS

Elimina la base de datos solo si existe. Si no, la consulta no hace nada y no da error.

Palabra clave
nombre_base_datos
La base de datos que hay que eliminar.

Ponte a prueba

En la base de datos shop hay tablas con datos. ¿Qué pasará al ejecutar esta consulta?

MySQL 8.4
DROP DATABASE shop;

En el servidor no existe ninguna base de datos shop. ¿Qué pasará al ejecutar esta consulta?

MySQL 8.4
DROP DATABASE IF EXISTS shop;