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

Différentes façons d'afficher les tables dans MySQL Server

Il existe deux méthodes principales pour afficher les tables dans MySQL :

  1. Le MYSQL SHOW TABLEAUX commande.
  2. Interroger les Information_schema.tables tableau.

Dans cet article, nous allons les explorer tous les deux.

Commande MySQL AFFICHER LES TABLES

La commande show tables affiche la liste de toutes les tables créées dans une base de données. La syntaxe est la suivante :

SHOW [EXTENDED] | [FULL] TABLES
    [{FROM} database_name]
    [LIKE 'DBNamePattern']

Dans la syntaxe,

  1. Modificateurs :Nous pouvons utiliser l'une des options suivantes pour afficher les tableaux :
    1. PROLONGÉ – cette option remplit la liste des tables qui ont été créées par l'échec des instructions ALTER TABLE.
    2. COMPLET – cette option affiche une colonne supplémentaire qui fournit le type de table. Il peut s'agir d'une table de base, d'une vue ou de la vue système.
  2. DE – si vous souhaitez remplir la liste des tables à partir de la table spécifique, vous pouvez utiliser le mot-clé FROM.
  3. LIKE – si vous souhaitez remplir la liste des tables avec un modèle spécifique dans leurs noms, vous pouvez utiliser le mot-clé LIKE.

Voyons les exemples.

Exemple 1 :Afficher toutes les tables créées dans une base de données spécifique

Pour afficher toutes les tables MySQL créées dans Sakila base de données, utilisez le modificateur FULL et le mot-clé FROM. Exécutez la commande suivante :

mysql> SHOW TABLES FROM sakila;

Sortie

Comme vous pouvez le voir, la requête a rempli la liste des tables du Sakila base de données.

Exemple 2 :Remplir la liste des tableaux avec un modèle de mot clé spécifique

Supposons que nous voulions obtenir la liste des tables dont les noms commencent par le mot-clé film . Nous utilisons le mot-clé LIKE pour faire correspondre le modèle.

Mais lorsque nous utilisons le LIKE mot-clé, nous ne pouvons pas utiliser le FROM modificateur. La requête est la suivante :

use sakila;
SHOW TABLES like 'film%'

Sortie

Exemple 3 :Remplir la liste des tables avec son type

Pour remplir la liste des tables avec leur type, nous pouvons utiliser le FULL modificateur. Supposons que nous voulions dériver la liste des tables avec leurs types créés dans la base de données Sakila. Voir la requête suivante :

mysql> SHOW FULL TABLES FROM sakila;

Sortie

Maintenant, remplissons la liste des tables à partir de information_schema.tables .

Interrogation de la table Information_schema.tables

Pour afficher les tables MySQL, nous pouvons utiliser les information_schema.tables tableau qui contient les informations suivantes :

  • Table_Schema :Nom de la base de données ou du schéma dans lequel la table a été créée.
  • Nom_table : Nom du tableau.
  • Type_table : Type de tableau. Il peut s'agir de l'un des éléments suivants :
    • Vue système : Liste des vues système. Il contient les informations des détails internes de la base de données. Ces vues sont créées en combinant plusieurs tables de base avec les informations de la base de données.
    • Tableau de base : Une liste de tables de base peut être des tables utilisateur ou des tables système.
    • Afficher : Liste des vues définies par l'utilisateur.
  • Moteur :Nom du moteur de base de données dans lequel la table a été créée.
  • Version :Le numéro de version du .frm fichier de la table.
  • Row_format :Le format de stockage des lignes. Le format de stockage de lignes peut être l'un des suivants :
    • Fixé
    • Compressé
    • Redondant
    • Dynamique
    • Compacte
  • Table_rows :nombre de lignes dans le tableau. Si vous utilisez des tables InnoDB, il renvoie le nombre de lignes estimé. Pour obtenir le nombre exact de lignes, utilisez le SELECT COUNT(*) requête.
  • Avg_row_length  :longueur moyenne des lignes du fichier de données.
  • Data_length  :Si vous utilisez des tables MyISAM, la valeur de data_length colonne est la longueur du fichier de données. Si vous utilisez les tables InnoDB, la valeur de Data_length colonne est le montant de la taille allouée à l'index cluster multiplié par la taille de la page InnoDB.
  • Max_data_length : La longueur maximale autorisée du fichier de données. C'est le nombre d'octets qui peuvent être stockés dans la table.
  • Index_length : La longueur de l'index. Si vous utilisez des tables MyISAM, la valeur de index_length colonne indique la taille de l'index. Si vous utilisez les tables InnoDB, la valeur de index_length colonne correspond à la taille totale de tous les index non clusterisés multipliée par la taille de la page.
  • Data_free :Le nombre total d'octets alloués mais inutilisés. Si vous utilisez la table InnoDB, la valeur de data_free colonne est l'espace inutilisé du tablespace dans lequel la table a été créée.
  • Incrémentation_auto : La valeur de Auto_increment colonne est la prochaine valeur d'auto-incrémentation.
  • Create_time :La date et l'heure auxquelles la table a été créée. Lorsque nous restaurons la base de données, la valeur de create_date sera l'heure à laquelle la base de données a été restaurée.
  • Update_time :La date et l'heure auxquelles le fichier de données a été mis à jour. Il affiche l'horodatage des dernières instructions INSERT, UPDATE ou DELETE exécutées sur les tables InnoDB.
  • Check_Time : La date et l'heure auxquelles la table a été vérifiée pour la dernière fois.
  • Table_collation :Le nom du classement par défaut de la table.
  • Somme de contrôle  :la valeur de la somme de contrôle.
  • Créer_Option  :L'option de configuration supplémentaire qui a été utilisée pour créer la table.
  • Table_commentaire  :le commentaire ou les informations utilisés lors de la création du tableau.

Exemple 1 :Remplir la liste de toutes les tables

Supposons que nous voulions remplir toutes les tables créées dans toutes les bases de données. La requête est la suivante :

mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;

Sortie

Comme vous pouvez le voir, la requête a rempli la liste des tables avec le nom de la base de données et l'heure de création. La requête a renvoyé de nombreux enregistrements, la sortie est donc coupée.

Exemple 2 :Remplir la liste de toutes les tables créées dans une base de données spécifique

Pour remplir la liste des tables créées dans le Sakila base de données, vous pouvez appliquer le filtre sur le Table_Schema colonne :

mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';

Sortie

Comme vous pouvez le voir, la requête a renvoyé la liste des tables et des vues créées dans la base de données Sakila, son heure de création et son type.

Exemple 3 :Remplir la liste de toutes les tables avec le nombre de lignes

Nous pouvons inclure les Table_rows colonne pour afficher le nombre de lignes des tables MySQL. Supposons que vous souhaitiez obtenir la liste des tables dont le nom commence par film . La sortie doit inclure le nombre d'enregistrements dans ces tables.

mysql> select table_catalog, table_schema, table_name,table_type,table_rows from information_schema.tables WHERE table_schema='sakila' and table_name like 'film%' and table_type='BASE TABLE';

Sortie

Exemple 4 :Remplir le nombre de tables et de vues

Par exemple, nous voulons obtenir le nombre de tables et de vues créées dans la base de données. Pour ce faire, exécutez la requête suivante :

mysql> select table_schema as 'Database OR Schema name', count(table_type) as 'Tables and Views', table_type as 'Object Type' from information_schema.tables  group by table_type,table_schema;

Sortie

Comme vous pouvez le voir dans l'image ci-dessus, la requête a rempli le nombre de tables et de vues créées dans toutes les bases de données.

Exemple 5 :Tableaux avec leur taille

Maintenant, nous voulons remplir la liste des tables créées dans le Sakila base de données avec leur taille. Pour générer la liste, exécutez la requête suivante :

mysql> SELECT Table_schema as 'Database Name',  TABLE_NAME AS 'Table',   ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 ) AS 'Size in KB' FROM   information_schema.TABLES WHERE TABLE_SCHEMA = 'sakila' and table_type='BASE TABLE' ORDER BY  (DATA_LENGTH + INDEX_LENGTH) DESC;

Sortie

Comme vous pouvez le voir, la requête a renvoyé le nom de la base de données, le nom de la table et la taille.

Résumé

Ainsi, nous avons défini et appris à utiliser les méthodes de remplissage de la liste des tables créées dans la base de données. Nous avons exploré le SHOW TABLEAUX commande, puis nous avons examiné la méthode d'interrogation des Information_schema.tables table. Nous espérons que ces conseils vous seront utiles dans votre flux de travail.

Si vous souhaitez en savoir plus sur les tables dans SQL, lisez l'article sur les tables temporaires dans SQL Server. Et si vous souhaitez ajouter quelque chose, partager vos astuces de travail ou discuter de ces méthodes, vous êtes les bienvenus dans la section Commentaires.