Exemples MySQL Information_Schema

Exemples MySQL Information_Schema

Dans la version 5.0, MySQL a implémenté le Information_schema base de données, qui est visible comme une base de données normale. Bien que son comportement et ses fonctionnalités soient similaires à une base de données normale, les informations contenues dans la base de données ne sont pas toutes des données régulières.

Voici la meilleure façon de décrire le Mysql information_schema base de données. Il s'agit d'une base de données contenant des informations sur d'autres bases de données. Il est disponible dans chaque instance MySQL et est utilisé pour stocker des informations sur les métadonnées sur toutes les autres bases de données du serveur. Il est également appelé catalogue système ou dictionnaire de données.

Comme toutes les bases de données MySQL, les informations dans le Information_schema La base de données est stockée dans des tables en lecture seule. Cependant, en réalité, ce sont des vues et non des tables MySQL de base. En ce sens, vous ne pouvez pas effectuer des déclencheurs MySQL contre les tables stockées dans la base de données, et il n'y a pas de fichiers associés à eux.

NOTE: Vous ne trouverez pas non plus de répertoire au nom de Information_schema.

Malgré tout ça, le Information_schema La base de données est l'endroit idéal pour interroger les informations sur d'autres bases de données stockées sur le serveur. Ce tutoriel vise à vous fournir un aperçu de la Information_schema base de données et donnez-vous quelques exemples d'utilisation de la base de données.

Informations de base sur l'information_schema

Depuis Mysql 5.0 et supérieur, si vous exécutez les bases de données Show, la Base de données d'informations sur les informations est visible et peut être utilisé comme base de données normale.

MySQL> Afficher les bases de données;
+--------------------+
| Base de données |
+--------------------+
| information_schema |
| mysql |
| Performance_schema |
| Sakila |
| sys |
| Monde |
+--------------------+
6 lignes en jeu (0.00 sec)

On peut utiliser la base de données Information_Schema simplement en utilisant la requête MySQL Utiliser AS:

MySQL> Utilisez Information_Schema;

Une fois dans la base de données, vous pouvez afficher les tables stockées à l'aide de la commande comme:

mysql> show tables;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| Administrable_Role_Authorizations |
| Applicable_RORES |
| Caractères_sets |
| Check_Constraints |
| Collation_character_set_applicabilité |
| Collations |
| Column_privileges |
| COLUMN_STatistics |
| Colonnes |
| Columns_Extensions |
| Activé_Roles |
| Moteurs |
| Événements |
| Fichiers |
| Innodb_buffer_page |
| Innodb_buffer_page_lru |
-----------Données tronquées----------------

La sortie ci-dessus montre certaines des tables stockées dans la base de données Information_schema. N'oubliez pas qu'ils ne sont pas des tables réelles et ne peuvent donc pas être modifiées. Au lieu de cela, ils sont stockés dans la mémoire et déposés une fois que le serveur MySQL est arrêté. Lors du redémarrage, l'information_schema est reconstruite et remplie des données existantes sur le serveur.

Sélectionnez dans Information_Schema

Pour afficher les informations stockées dans le information_schema base de données, vous pouvez utiliser l'instruction SELECT. Par exemple, pour répertorier les informations dans la table des moteurs, la commande comme:

mysql> sélectionner * dans l'information_schema.moteurs;

Cela videra les données stockées dans le tableau comme indiqué:

Exemple 1 - montrez les plus grandes tables

L'exemple ci-dessous montre comment utiliser le Information_schema Pour afficher les plus grandes bases de données du serveur.

Lors de l'exécution de la requête ci-dessus, vous obtiendrez toutes les tables de votre taille, à partir du plus grand au plus petit.

Voici un exemple de sortie:

Exemple 2 - Afficher les privilèges

En utilisant la table de données Table_Privileges dans la base de données du schéma d'information, nous pouvons obtenir les privilèges sur le serveur MySQL. Certaines des colonnes de ce tableau sont:

  • BÉNÉFICIAIRE - Cela montre le compte MySQL auquel le privilège est accordé. Ceci est généralement sous le format de nom d'utilisateur @ hostname.
  • Table_catalogue - Contient le nom du catalogue auquel appartient la table. La valeur est définie par défaut.
  • Table_schema - Le nom de la base de données à laquelle appartient la table.
  • NOM DE LA TABLE - le nom de la table.
  • IS_GRANTEE - Valeur booléenne si l'utilisateur a un privilège de subvention. Contient généralement une valeur de oui ou non.

En utilisant les informations ci-dessus, nous pouvons afficher les privilèges dans le Mysql serveur utilisant la requête:

Sélectionnez * dans Information_Schema.Schema_privileges;

Cette commande vous donnera une sortie comme indiqué.

Exemple 3 - Afficher les processus en cours d'exécution

Nous pouvons utiliser le LISTE DES PROCESSUS table disponible dans le Information_schema table pour voir les opérations en cours d'exécution sur le serveur.

Voici un exemple de requête pour afficher tous les processus en cours:

Sélectionnez * dans Information_Schema.LISTE DES PROCESSUS;

Le vidage de tous les processus en cours indiquera une sortie similaire à celle indiquée:

Vous pouvez également utiliser la commande

Afficher la liste de processus complète, qui montrera des informations similaires à la question de l'interrogation LISTE DES PROCESSUS table dans le Information_schema.

Exemple 4 - Afficher les informations sur les index de table

À l'aide du tableau des statistiques, nous pouvons afficher des informations sur les index de table. Voici un exemple de requête:

Sélectionnez * dans Information_Schema.Statistiques où Table_Schema = 'Sakila' Limite 5;

Informations sur tous les index du schéma Sakila comme indiqué ci-dessous:

Ce sont quelques-uns des exemples que vous pouvez interroger Information_schema base de données.

Conclusion

Le Information_schema La base de données est une source d'informations pour toutes les autres bases de données et le serveur MySQL lui-même. De plus, il vous fournit une pléthore d'options à gérer et à modifier pour que les informations interrogent. Si vous combinez la puissance de Infornmates_schema Et la magie de SQL, vous avez le plus de puissance de tous les utilisateurs de base de données.

Merci d'avoir lu et SQL Time!