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_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
|---|---|---|
| tienda_mysql | utf8mb4 | utf8mb4_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
