Puede que alguna vez te hayas preguntado, o incurriste en la necesidad de saber si un determinado dato se estaba almacenando o no en la base de datos. Esto es algo que suele suceder si estas heredando algún sistema y no tienes toda la documentación técnica o si de repente estas utilizando algún módulo, paquete o librería de un tercero que almacena información en tu base de datos.
Quizás una forma práctica de poder resolver esto es buscando el nombre del dato, o mejor dicho el nombre de la columna donde suponemos que se guarda esa información en la base de datos.
Veamos un ejemplo práctico
Digamos, que estoy trabajando con un sistema que administra libros y necesito saber si mi sistema almacena el código ISBN de cada libro. Podría efectuar una consulta para obtener todas las tablas que contengan una columna con el nombre ISBN, de forma tal que me de in indicio de si dicha info esta siendo o no almacenada.
Para eso en nuestra consola de MySQL podemos ejecutar el siguiente comando.
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'ISBN';Esto nos devolvería una lista (En formato de tabla) con el nombre de las tablas donde se encuentra dicho campo.
Ahora bien, que pasa si en realidad el campo se llama CODIGO_ISBN o ISBN_CODE ? El ejemplo anterior no nos serviría o no nos devolvería nada, ya que está filtrando por el nombre exacto de ISBN, por lo que necesitamos de alguna forma especificar que contenga la palabra ISBN pero que no sea exactamente ese nombre. Para este caso, podemos hacer unas mínimas modificaciones a la consulta, de forma tal que quede así:
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%ISBN%';Ahora si, esta consulta nos devolverá una tabla con dos columnas, en la primera encontraremos el nombre de la tabla y en la segunda el nombre del campo de esa tabla que contenga la palabra ISBN.
Espero que este artículo les haya sido de ayuda.
