Comment utiliser MySQL Expliquez la déclaration

Comment utiliser MySQL Expliquez la déclaration
L'utilisateur de la base de données doit exécuter différents types de requêtes à différentes fins. Mais parfois, de nombreuses requêtes ne renvoient pas les résultats attendus et l'administrateur de la base de données doit découvrir la raison. MySQL contient un outil utile nommé EXPLIQUER Pour diagnostiquer l'erreur pour laquelle l'instruction de requête ne fonctionne pas correctement. Il est utilisé au début de toute déclaration de requête pour fournir des informations sur l'exécution de la requête. Expliquer le mot clé peut être utilisé avec des instructions sélectionnées, insérer, mettre à jour, supprimer et remplacer. Comment expliquer que le mot-clé fonctionne avec certaines instructions pour diagnostiquer les erreurs de la requête ou optimiser la requête est affichée dans cet article.

Expliquez la sortie du mot-clé pour la requête sélectionnée:

Lorsque le mot clé Explication est exécuté avec une instruction SELECT, la sortie de l'explication renvoie les colonnes suivantes.

Colonne Description
identifiant Il indique l'identifiant de la requête. Il représente le nombre séquentiel de requêtes sélectionnées.
sélectionner le genre Il indique le type de requête sélectionnée. Le type peut être simple, primaire, sous-requête, union, etc.
tableau Il indique le nom de la table utilisé dans la requête.
partitions Il indique les partitions du tableau partitionné examiné.
taper Il indique le type de jointure ou le type d'accès des tables.
possible_keys Il indique les touches qui peuvent être utilisées par MySQL pour trouver des lignes de la table.
clé Il indique l'index utilisé par MySQL.
key_len Il indique la longueur de l'index qui sera utilisé par l'optimiseur de requête.
référence Il indique les colonnes ou les constantes qui sont comparées à l'indice nommé dans la colonne de clé
Lignes Il indique les listes de dossiers qui ont été examinés.
filtré Il indique le pourcentage estimé de lignes de table qui seront filtrées par la condition.
supplémentaire Il indique les informations supplémentaires concernant le plan d'exécution de la requête.

Supposons que vous ayez deux tables connexes nommées clients et ordres Dans la base de données nommée entreprise. Les instructions SQL nécessaires pour créer la base de données et les tables avec des données sont données ci-dessous.

Créer une entreprise de base de données;
Utiliser l'entreprise;
Créer des clients de table (
id int (5) clé primaire Auto_increment,
nom varchar (50) pas null,
mobile_no varchar (50) pas null,
Email Varchar (50) Not Null) Engine = inNODB;
Créer des commandes de table (
ID VARCHAR (20) Clé primaire,
Date de commande_date,
client_id int (5) pas null,
livraison_address varchar (50) pas null,
Montant Int (11),
Clé étrangère (Customer_ID) références aux clients (ID))
Moteur = inNODB;
Insérer dans les valeurs des clients
(Null, «Johnathan», «18477366643», «John @ gmail.com '),
(NULL, «Musfiqur Rahman», «17839394985», «Musfiq @ gmail.com '),
(Null, «Jimmy», «14993774655», «Jimmy @ gmail.com ');
Insérer dans la valeur des commandes
(«1937747», «2020-01-02», 1, «New Work», 1000),
('8633664', '2020-02-12', 3, 'Texas', 1500),
(«4562777», «2020-02-05», 1, «Californie», 800),
(«3434959», «2020-03-01», 2, «New Work», 900),
(«7887775», «2020-03-17», 3, «Texas», 400);

Exécutez l'instruction suivante pour voir la liste d'enregistrements actuelle de clients tableau.

Sélectionner * parmi les clients;

Exécutez l'instruction suivante pour voir la liste d'enregistrements actuelle de ordres tableau.

Sélectionner * dans les ordres;

Utilisation d'une déclaration d'explication simple:

L'instruction SQL suivante renverra le mot-clé de l'instruction Expliquez d'une question de sélection simple qui récupère tous les enregistrements de la table des clients.

Expliquez SELECT * dans les clients \ g;

La sortie suivante apparaîtra après avoir exécuté l'instruction. Il s'agit d'une requête de table unique et pas de clauses spéciales comme JOIN, UNION, etc. sont utilisés dans la requête. Pour cela, la valeur de sélectionner le genre est SIMPLE. Le tableau des clients ne contient que trois enregistrements, c'est pourquoi la valeur de Lignes est 3. La valeur du filtré est à 100% car tous les enregistrements du tableau sont récupérés.

Utilisation de l'explication dans la requête sélectionnée avec join:

L'instruction Explication suivante est appliquée dans une requête sélectionnée de deux tables avec la clause de jointure et une condition où.

Expliquer certains clients.nom, commandes.ORDER_DATE, ORDERS.montant
Des clients
Rejoignez les commandes sur (clients.id = commandes.N ° de client)
Où les clients.name = 'Johnathan' \ g

La sortie suivante apparaîtra après avoir exécuté l'instruction. Ici, sélectionner le genre est simple pour les deux tables. Deux tables sont liées par une relation un-à-plusieurs. La clé primaire de clients La table est utilisée comme une clé étrangère de ordres tableau. Pour cela, la valeur de possible_keys pour la deuxième ligne est N ° de client. La valeur filtrée est 33% pour clients table parce que 'Johnathan' est la première entrée de ce tableau et pas besoin de rechercher davantage. La valeur filtrée de ordres la table est 100% En raison de toutes les valeurs de ordres Tableau requis pour vérifier pour récupérer les données.

Il y a un avertissement dans la sortie de l'instruction ci-dessus. L'instruction suivante est utilisée pour voir la requête exécutée après avoir apporté toute modification par l'optimiseur de requête ou vérifier la raison de l'erreur si une erreur se produit après l'exécution de la requête.

Montrer les avertissements \ g

Il n'y a aucune erreur dans la requête. La sortie montre la requête modifiée qui est exécutée.

Utilisation d'expliquez pour découvrir l'erreur de sélection de la requête:

La requête sélectionnée utilisée dans l'instruction Explication suivante contient une erreur. Le format de date pris en charge par MySQL est 'Yyyy-mm-dd'. Mais dans la condition où cette requête, la valeur de date est donnée comme 'Dd-mm-yyy' C'est faux.

Expliquer certains clients.nom, commandes.ORDER_DATE, ORDERS.montant
Des clients
Rejoignez les commandes sur (clients.id = commandes.N ° de client)
Où les commandes.order_date = '10 -10-2020 '\ g

La sortie suivante sera apparue après avoir exécuté l'instruction. Il montrera deux avertissements. L'un est la valeur par défaut qui est expliquée dans l'exemple précédent et une autre concerne l'erreur de date mentionnée précédemment.

Exécutez l'instruction pour voir l'erreur.

Montrer les avertissements \ g

La sortie affiche clairement l'erreur avec un message d'erreur et un nom de colonne.

Utilisation de l'explication dans une requête sélectionnée avec Union All Operator:

Union All Operator est utilisé dans la requête sélectionnée pour récupérer toutes les valeurs de colonne correspondantes avec des doublons dans les tables connexes. L'instruction suivante affichera la sortie Expliquez de l'application de l'opérateur de l'Union entre clients et ordres les tables.

Expliquez l'identifiant de sélection comme ID
Des clients
Union All
Sélectionnez Customer_ID comme ID
Des ordres \ g

La sortie suivante apparaîtra après avoir exécuté l'instruction. Ici, la valeur de sélectionner le genre est SYNDICAT pour la deuxième ligne de la sortie et la valeur de Supplémentaire est l'index.

Conclusion:

Les utilisations très simples de l'énoncé Explication sont affichées dans cet article. Mais cette déclaration peut être utilisée pour résoudre divers problèmes de base de données compliqués et optimiser la base de données pour de meilleures performances.