Todo lo que necesita saber sobre la lista de bases de datos MySQL

Una de las primeras cosas que querrá saber al iniciar sesión en un nuevo servidor MySQL es qué bases de datos están disponibles. Es posible que desee una lista de bases de datos al realizar el mantenimiento. O puede que simplemente sienta curiosidad o esté tratando de encontrar una base de datos antigua cuyo nombre olvidó hace mucho tiempo.

Una línea de comando en blanco puede resultar intimidante. Cada uno de estos casos requiere un comando simple, y MySQL lo proporciona en forma de SHOW DATABASES . Este comando tiene un uso muy sencillo, pero pronto lo encontrará útil si trabaja con MySQL.

En este artículo, encontrará todo lo que necesita saber sobre la lista de bases de datos MySQL.

Cómo utilizar el comando SHOW DATABASES

Una vez que haya iniciado sesión en su servidor MySQL, ingrese el texto MOSTRAR BASES DE DATOS; en la línea de comando y presione Entrar en su teclado; puede ver un ejemplo a continuación.

MySQL devuelve los resultados en una tabla con una columna: Base de datos . Esta columna contiene el nombre de cada base de datos y las ordena alfabéticamente. La línea de resumen le dice cuántas filas, es decir, bases de datos, hay.

Siempre debería ver al menos cuatro bases de datos de listas MySQL de forma predeterminada. Estas son bases de datos especiales del sistema que MySQL instala por sí mismo:

  • mysql.
  • esquema_información.
  • esquema_de_rendimiento.
  • sys.

Verá para qué se utiliza uno de ellos , esquema_información, más adelante.

Filtrar los resultados de MOSTRAR BASES DE DATOS

Puede usar la misma condición LIKE que usa en una cláusula WHERE de una instrucción SELECT . LIKE toma un solo argumento, un patrón para coincidir. El patrón puede incluir dos caracteres especiales: % (porcentaje) y _ (guión bajo). Estos coinciden con cualquier cadena y cualquier carácter individual respectivamente.

Por ejemplo, para enumerar todas las bases de datos con la letra a en su nombre:

 SHOW DATABASES LIKE '%a%';

Cómo utilizar condiciones más complicadas

Si necesita usar un condicional más complicado que la coincidencia de patrones básicos de LIKE, aún puede usar la conocida cláusula WHERE. El truco que deberá aplicar es hacer referencia a la columna que representa los nombres de la base de datos. Como puede ver en el resultado anterior, es simplemente Base de datos . Ahora, debido a que MySQL considera que esta es una palabra clave reservada, deberá escapar con comillas invertidas.

 SHOW DATABASES WHERE LENGTH(`Database`) > 6;

Los resultados ahora solo contienen tablas con nombres de más de seis caracteres:

Relacionado: Guía para principiantes para escribir esquemas de bases de datos MySQL

Filtrar bases de datos por otros metadatos

MySQL admite algunos otros campos relacionados con la base de datos, pero no están disponibles a través de SHOW_DATABASES . Para estos, deberá hacer uso de la tabla de esquemas de la base de datos information_schema . Así es como se ve la estructura de esta tabla de sistema especial:

Aparte de SCHEMA_NAME , que es exactamente igual que la columna de la base de datos de SHOW DATABASES, solo hay dos campos útiles: DEFAULT_CHARACTER_SET_NAME y DEFAULT_COLLATION_NAME . Los otros campos siempre tienen el mismo valor, por lo que no tienen sentido a la hora de filtrar.

Los campos DEFAULT_CHARACTER_SET_NAME y DEFAULT_COLLATION_NAME definen qué caracteres admite la base de datos y cómo ordenarlos. Es posible que no haya pensado en ellos antes, pero son importantes si se trata de texto que no es ASCII.

¡Es importante conocer la diferencia entre ASCII y Unicode ! Si tiene varias bases de datos instaladas de diferentes fuentes, es más probable que tenga un rango de valores.

Reutilizando el ejemplo anterior, puede filtrar las columnas de esta tabla como cualquier otra:

 SELECT schema_name FROM information_schema.schemata WHERE DEFAULT_CHARACTER_SET_NAME='utf8';

Puede realizar cualquier otra operación de tabla en la tabla de esquemas, como agrupar:

 SELECT DEFAULT_CHARACTER_SET_NAME, COUNT(*) FROM information_schema.schemata GROUP BY DEFAULT_CHARACTER_SET_NAME;

Relacionado: Todo lo que necesita saber sobre la declaración GROUP BY de SQL

Usar un comando simple en MySQL para enumerar bases de datos

Este comando es probablemente el más simple que ofrece MySQL. Pero eso no impide que sea muy útil. Si alguna vez se encuentra mirando una línea de comandos de MySQL, no olvide dejar un espacio en blanco, MOSTRAR BASES DE DATOS es una buena manera de comenzar desde cero.

Una vez que tenga una base de datos en su lugar y sepa con cuál está trabajando, es hora de aprender más sobre los esquemas y la mejor manera de organizar sus datos.