A continuación se muestran cuatro formas de enumerar las tablas en una base de datos MySQL mediante SQL o la línea de comandos.
El SHOW TABLES
Comando
El SHOW TABLES
El comando enumera los elementos que no son TEMPORARY
tablas y vistas en una base de datos dada:
SHOW TABLES;
Resultado:
+-----------------+ | Tables_in_music | +-----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +-----------------+
Eso enumeró todas las tablas en la base de datos actual, que se llama Music
.
También podemos usar el FULL
modificador para devolver una segunda columna que muestra el tipo:
SHOW FULL TABLES;
Resultado:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | | valbumsartists | VIEW | | valbumsgenres | VIEW | | vallalbums | VIEW | | vallartists | VIEW | | vallgenres | VIEW | +-----------------+------------+
Podemos ver que la mayoría de los resultados enumerados aquí son en realidad vistas.
Si solo queremos que se devuelvan las tablas base, podemos usar un WHERE
cláusula contra el Table_type
columna:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';
Resultado:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | +-----------------+------------+
SHOW TABLES
también acepta un LIKE
cláusula que se puede usar para limitar los resultados a solo aquellas tablas que coincidan con un patrón dado:
SHOW TABLES
LIKE 'a%';
Resultado:
+----------------------+ | Tables_in_music (a%) | +----------------------+ | Albums | | Artists | +----------------------+
En este caso devolví todas las tablas que comienzan con la letra a
.
El SHOW TABLE STATUS
Comando
El SHOW TABLE STATUS
El comando es similar a SHOW TABLES
pero proporciona información más extensa sobre cada uno (no TEMPORARY
) mesa.
También acepta un WHERE
y LIKE
cláusula, como SHOW TABLES
.
Ejemplo:
SHOW TABLE STATUS
LIKE 'a%';
Resultado:
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Albums | InnoDB | 10 | Dynamic | 20 | 819 | 16384 | 0 | 32768 | 0 | 21 | 2022-02-15 09:10:36 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | | Artists | InnoDB | 10 | Dynamic | 16 | 1024 | 16384 | 0 | 0 | 0 | 17 | 2021-11-13 12:56:02 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
El information_schema.TABLES
Mesa
También podemos consultar el information_schema.TABLES
tabla:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE';
Resultado:
+------------+ | TABLE_NAME | +------------+ | Artists | | Genres | | Albums | +------------+
Consultando esto sin filtrar los resultados por TABLE_SCHEMA
devuelve tablas de todas las bases de datos. Del mismo modo, consultarlo sin filtrar por TABLE_TYPE
devuelve todos los tipos de tablas.
El mysqlshow
Cliente
Otra forma de hacerlo es con mysqlshow
utilidad.
Para usar esta opción, abra una línea de comando/ventana de terminal y ejecute lo siguiente (reemplazando music
con la base de datos que le interesa):
mysqlshow music;
Resultado:
+----------------+ | Tables | +----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +----------------+
Esto devuelve vistas y tablas.
La salida muestra solo los nombres de esas bases de datos, tablas o columnas para las que tiene algunos privilegios.
Si no se proporciona ninguna base de datos, se muestra una lista de nombres de bases de datos. Si no se proporciona ninguna tabla, se muestran todas las tablas coincidentes en la base de datos. Si no se proporciona ninguna columna, se muestran todas las columnas y tipos de columnas coincidentes en la tabla.
Si obtiene un error de "acceso denegado", es posible que deba usar sudo
e ingrese su contraseña cuando se le solicite:
sudo mysqlshow music;
Esta utilidad acepta bastantes opciones, como --user
(para que pueda pasar el nombre de usuario), --password
(para que pueda pasar la contraseña), --host
para el host en el que se encuentra el servidor MySQL, etc.
Consulte la documentación de MySQL para obtener una lista completa de opciones.