SHOW DATABASES

La sentencia SHOW DATABASES muestra todas las bases de datos disponibles en el servidor MySQL. Es el primer comando que sueles ejecutar al conectarte para ver qué bases de datos existen y verificar que tu base de datos está presente.

Sintaxis

SHOW DATABASES;

MySQL también acepta SHOW SCHEMAS como sinónimo.

Listar todas las bases de datos

SHOW DATABASES;
Database
information_schema
mysql
performance_schema
sys
tienda_mysql

El resultado muestra tanto las bases de datos que has creado (tienda_mysql) como las bases de datos del sistema que MySQL mantiene internamente.

Bases de datos del sistema

MySQL incluye varias bases de datos del sistema que no debes modificar directamente:

information_schema contiene metadatos sobre todas las bases de datos, tablas, columnas, índices y otros objetos del servidor. Es una base de datos virtual de solo lectura.

mysql almacena las tablas de sistema: usuarios, permisos, configuración del servidor, logs y más. Los cambios en esta base de datos afectan al funcionamiento del servidor.

performance_schema recopila datos de rendimiento del servidor: qué consultas se ejecutan, cuánto tardan, qué recursos consumen. Es útil para diagnosticar problemas de rendimiento.

sys proporciona vistas simplificadas sobre performance_schema e information_schema, facilitando la administración y el diagnóstico del servidor.

Filtrar con LIKE

Puedes filtrar el resultado usando LIKE con patrones:

SHOW DATABASES LIKE 'tienda%';
Database (tienda%)
tienda_mysql

Los patrones de LIKE funcionan igual que en un WHERE: % coincide con cualquier secuencia de caracteres y _ coincide con un solo carácter.

-- Bases de datos que contienen "schema"
SHOW DATABASES LIKE '%schema%';
Database (%schema%)
information_schema
performance_schema

Consultar information_schema

Para búsquedas más avanzadas, puedes consultar directamente la tabla SCHEMATA de information_schema:

SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys');
SCHEMA_NAMEDEFAULT_CHARACTER_SET_NAMEDEFAULT_COLLATION_NAME
tienda_mysqlutf8mb4utf8mb4_0900_ai_ci

Esta consulta muestra solo las bases de datos de usuario (excluyendo las del sistema) junto con su conjunto de caracteres y cotejamiento.

Permisos

SHOW DATABASES solo muestra las bases de datos sobre las que el usuario tiene algún privilegio. Un usuario sin permisos globales solo verá las bases de datos a las que tiene acceso:

-- Como usuario con permisos limitados
SHOW DATABASES;
Database
information_schema
tienda_mysql

information_schema siempre aparece porque todos los usuarios tienen acceso de lectura a ella. Las demás bases de datos del sistema solo aparecen si el usuario tiene privilegios sobre ellas.

El administrador puede controlar esto con la variable show_databases que requiere el privilegio SHOW DATABASES para ver la lista completa.

Con esto completamos la sección de gestión de bases de datos. En la siguiente sección exploraremos la definición de tablas: CREATE TABLE, ALTER TABLE y todas las operaciones para crear y modificar la estructura de las tablas.

Escrito por Eduardo Lázaro