HOWTO · MySQL
Mostrar la base de datos actual en MySQL
Este tutorial demuestra cómo podemos mostrar la base de datos actual en MySQL.
En esta página
Antes de ejecutar una consulta que dependa de un esquema predeterminado, comprueba qué base de datos ha seleccionado tu sesión de MySQL. La consulta SQL directa es SELECT DATABASE();. Devuelve el nombre de la base de datos seleccionada o NULL si la sesión no ha seleccionado ninguna. Puedes ejecutarla en MySQL Workbench o en otro editor SQL, y consultar la sesión desde el cliente interactivo de línea de comandos mysql.
Mostrar la base de datos actual con SELECT DATABASE()
Ejecuta SELECT DATABASE(); en el editor SQL o en el indicador de MySQL. La función indica la base de datos predeterminada de esa conexión; el valor depende de la sesión, así que puede variar entre conexiones. Varias conexiones también pueden tener seleccionada la misma base de datos. Es una consulta escalar que no lee filas de una tabla. En MySQL, FROM DUAL es opcional, por lo que SELECT DATABASE() FROM DUAL; devuelve el mismo tipo de valor.
Para copiar la consulta desde un shell, este comando independiente imprime la sentencia SQL. El bloque de código y sus etiquetas o salidas visibles se conservan en inglés:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
printf '%s\n' 'SELECT DATABASE();'
SELECT DATABASE();
La línea impresa es la consulta que debes ejecutar en MySQL; el comando del shell no se conecta a un servidor ni informa del nombre de una base de datos. Lee el valor que devuelve MySQL para confirmar el contexto antes de realizar operaciones que dependan de nombres de tabla sin calificar.
Ejecutar la consulta en MySQL Workbench
Conéctate al servidor MySQL desde Workbench, abre una pestaña del editor SQL para esa conexión y ejecuta SELECT DATABASE();. Lee el valor devuelto en la cuadrícula de resultados. Una base de datos que aparezca en el navegador de esquemas está disponible para consultarla, pero su presencia allí no confirma por sí sola que esté seleccionada en la sesión actual. El resultado de la consulta es la comprobación directa.
La consulta se limita a la conexión que la ejecuta. Si tienes abiertas varias pestañas del editor o varias conexiones, ejecútala en la misma conexión en la que piensas ejecutar la consulta de tu aplicación. Workbench también puede ejecutar SELECT DATABASE() FROM DUAL; si prefieres esa forma, aunque DUAL es innecesario en MySQL.
Comprobar la base de datos actual desde el cliente de línea de comandos de MySQL
En el indicador del cliente interactivo mysql, escribe status y consulta el campo Current database en el resumen de conexión del cliente. El nombre de ese campo aparece en inglés en dicho resumen. status es un comando del cliente, no una sentencia SQL; no le añadas un punto y coma de SQL. El resumen también puede incluir datos propios de la conexión, como el host, el usuario y el juego de caracteres; esos valores dependen de tu entorno. Para obtener el nombre de la base de datos como resultado SQL, escribe SELECT DATABASE(); en el indicador.
Esta comprobación corresponde a la conexión actual del cliente. Si vuelves a conectarte o abres otra sesión, compruébala por separado, ya que podría tener seleccionada otra base de datos.
Gestionar una sesión sin una base de datos seleccionada
Si SELECT DATABASE(); devuelve NULL, la sesión no tiene seleccionada una base de datos predeterminada. Esto no significa que el servidor carezca de bases de datos. SHOW DATABASES; muestra las bases de datos visibles para tu cuenta, pero no selecciona ninguna. Elige la que necesitas con USE database_name;, sustituyendo database_name por su nombre real; después, vuelve a ejecutar SELECT DATABASE(); para confirmar la selección. USE establece la base de datos predeterminada de la sesión; MySQL comprueba tus privilegios cuando accedes a objetos de esa base.
También puedes conectarte con una base de datos ya seleccionada o, cuando corresponda, calificar los nombres de tabla con el nombre de una base de datos. Seleccionar una base predeterminada resulta útil si quieres escribir consultas más cortas con nombres de tabla sin calificar. Si continúas sin una base seleccionada, pueden fallar las sentencias que necesiten un esquema predeterminado; las expresiones que no dependen de tablas, como SELECT DATABASE();, siguen permitiéndote consultar el contexto de la sesión.