Mysql
 sql >> Base de données >  >> RDS >> Mysql

4 façons de lister toutes les tables d'une base de données MySQL

Vous trouverez ci-dessous quatre façons de répertorier les tables d'une base de données MySQL à l'aide de SQL ou de la ligne de commande.

Le SHOW TABLES Commande

Le SHOW TABLES la commande répertorie les non-TEMPORARY tables et vues dans une base de données :

SHOW TABLES;

Résultat :

+-----------------+
| Tables_in_music |
+-----------------+
| Albums          |
| Artists         |
| Genres          |
| valbumsartists  |
| valbumsgenres   |
| vallalbums      |
| vallartists     |
| vallgenres      |
+-----------------+

Cela répertorie toutes les tables de la base de données actuelle, qui s'appelle Music .

Nous pouvons également utiliser le FULL modificateur pour renvoyer une deuxième colonne qui affiche le type :

SHOW FULL TABLES;

Résultat :

+-----------------+------------+
| Tables_in_music | Table_type |
+-----------------+------------+
| Albums          | BASE TABLE |
| Artists         | BASE TABLE |
| Genres          | BASE TABLE |
| valbumsartists  | VIEW       |
| valbumsgenres   | VIEW       |
| vallalbums      | VIEW       |
| vallartists     | VIEW       |
| vallgenres      | VIEW       |
+-----------------+------------+

Nous pouvons voir que la plupart des résultats répertoriés ici sont en fait des vues.

Si nous voulons que seules les tables de base soient renvoyées, nous pouvons utiliser un WHERE clause contre le Table_type colonne :

SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE';

Résultat :

+-----------------+------------+
| Tables_in_music | Table_type |
+-----------------+------------+
| Albums          | BASE TABLE |
| Artists         | BASE TABLE |
| Genres          | BASE TABLE |
+-----------------+------------+

SHOW TABLES accepte également un LIKE clause qui peut être utilisée pour limiter les résultats aux seules tables qui correspondent à un modèle donné :

SHOW TABLES
LIKE 'a%';

Résultat :

+----------------------+
| Tables_in_music (a%) |
+----------------------+
| Albums               |
| Artists              |
+----------------------+

Dans ce cas, j'ai renvoyé tous les tableaux commençant par la lettre a .

Le SHOW TABLE STATUS Commande

Le SHOW TABLE STATUS La commande est similaire à la commande SHOW TABLES commande mais fournit des informations plus détaillées sur chacun (non TEMPORARY ) table.

Il accepte également un WHERE et LIKE clause, comme SHOW TABLES .

Exemple :

SHOW TABLE STATUS
LIKE 'a%';

Résultat :

+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
| 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 |                |         |
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+

Les information_schema.TABLES Tableau

Nous pouvons également interroger le information_schema.TABLES tableau :

SELECT 
    TABLE_NAME
FROM 
    information_schema.TABLES 
WHERE 
    TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE';

Résultat :

+------------+
| TABLE_NAME |
+------------+
| Artists    |
| Genres     |
| Albums     |
+------------+

Interroger ceci sans filtrer les résultats par TABLE_SCHEMA renvoie les tables de toutes les bases de données. De même, l'interroger sans filtrer par TABLE_TYPE renvoie tous les types de table.

Le mysqlshow Client

Une autre façon de le faire est avec le mysqlshow utilitaire.

Pour utiliser cette option, ouvrez une invite de ligne de commande/fenêtre de terminal et exécutez ce qui suit (en remplaçant music avec la base de données qui vous intéresse) :

mysqlshow music;

Résultat :

+----------------+
|     Tables     |
+----------------+
| Albums         |
| Artists        |
| Genres         |
| valbumsartists |
| valbumsgenres  |
| vallalbums     |
| vallartists    |
| vallgenres     |
+----------------+

Cela renvoie des vues et des tables.

La sortie affiche uniquement les noms des bases de données, tables ou colonnes pour lesquelles vous disposez de certains privilèges.

Si aucune base de données n'est indiquée, une liste de noms de bases de données s'affiche. Si aucune table n'est donnée, toutes les tables correspondantes de la base de données sont affichées. Si aucune colonne n'est indiquée, toutes les colonnes et tous les types de colonnes correspondants dans le tableau sont affichés.

Si vous obtenez une erreur "accès refusé", vous devrez peut-être utiliser sudo , et entrez votre mot de passe à l'invite :

sudo mysqlshow music;

Cet utilitaire accepte pas mal d'options, telles que --user (afin que vous puissiez passer le nom d'utilisateur), --password (afin que vous puissiez passer le mot de passe), --host pour l'hôte sur lequel se trouve le serveur MySQL, etc.

Consultez la documentation de MySQL pour une liste complète des options.