Comment lister les colonnes d’une table MySQL (SHOW COLUMNS, DESCRIBE, INFORMATION_SCHEMA)

目次

1. Introduction

Lors de la conception et de la gestion de bases de données avec MySQL, savoir comment récupérer la liste des colonnes d’une table est essentiel.
En vérifiant la liste des colonnes, vous pouvez comprendre plus facilement la structure de la table, maintenir la cohérence des données et concevoir des requêtes optimales.

En particulier, vous pouvez avoir besoin de récupérer une liste de colonnes dans des situations telles que :

  • Lors de l’examen d’une structure de base de données
  • Lors de l’ajout ou de la suppression de nouvelles colonnes
  • Lors de la confirmation des noms de colonnes existants ou des types de données
  • Lors de la recherche de tables contenant une colonne spécifique
  • Lors du traitement dynamique des tables dans votre application

Dans cet article, nous expliquons en détail les méthodes d’affichage des colonnes MySQL, des bases aux techniques avancées. Nous incluons également du contenu pratique tel que des exemples d’exécution SQL, des scripts d’automatisation et la gestion des erreurs, afin qu’il soit utile pour un large éventail de lecteurs, des débutants aux utilisateurs intermédiaires.

2. Méthodes de base pour lister les colonnes

MySQL offre plusieurs façons de récupérer une liste de colonnes. Les méthodes les plus courantes sont l’utilisation de SHOW COLUMNS et de DESCRIBE.

2-1. Récupérer les colonnes avec SHOW COLUMNS

La façon la plus simple de récupérer la liste des colonnes d’une table dans MySQL est d’utiliser l’instruction SHOW COLUMNS.

Utilisation

SHOW COLUMNS FROM table_name;

Alternativement, vous pouvez utiliser IN au lieu de FROM.

SHOW COLUMNS IN table_name;

Informations que vous pouvez récupérer

Lorsque vous exécutez SHOW COLUMNS, vous pouvez récupérer des informations comme les suivantes.

Column Name (Field)Data Type (Type)Allows NULL (Null)Key (Key)Default Value (Default)Other (Extra)
idint(11)NOPRINULLauto_increment
namevarchar(255)YES NULL 
ageint(3)YES NULL 

Exemple

Par exemple, pour récupérer la liste des colonnes de la table users, exécutez le SQL suivant.

SHOW COLUMNS FROM users;

Sortie:

+-------+--------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)| YES  |     | NULL    |                |
| age   | int(3)      | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+

Avantages et inconvénients de SHOW COLUMNS

Avantages

  • Simple et facile à utiliser
  • Vous aide à comprendre rapidement la structure de la table

Inconvénients

  • Difficile de récupérer uniquement des colonnes spécifiques
  • Vous ne pouvez pas filtrer les résultats avec une clause WHERE

2-2. Récupérer les colonnes avec DESCRIBE

L’instruction DESCRIBE offre presque la même fonctionnalité que SHOW COLUMNS.

Utilisation

DESCRIBE table_name;

Par exemple, pour récupérer les informations de colonnes de la table users :

DESCRIBE users;

Sortie:

+-------+--------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)| YES  |     | NULL    |                |
| age   | int(3)      | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+

Différence entre DESCRIBE et SHOW COLUMNS

DESCRIBE est un alias de SHOW COLUMNS, donc les résultats sont essentiellement les mêmes.
Cependant, SHOW COLUMNS est légèrement meilleur car il prend en charge des options plus détaillées.

2-3. Vérifier les listes de colonnes avec MySQL Workbench ou phpMyAdmin

Vous pouvez également vérifier une liste de colonnes en utilisant des outils graphiques au lieu de la ligne de commande.

✅ Dans MySQL Workbench, faites un clic droit sur une table et sélectionnez « Show Table Structure »
✅ Dans phpMyAdmin, cliquez sur la table cible et vérifiez la liste sous l’onglet « Structure »

Si vous n’êtes pas à l’aise avec l’interface en ligne de commande, les outils graphiques peuvent vous aider à travailler plus intuitivement.

Résumé

Dans cet article, nous avons couvert les méthodes de base pour lister les colonnes dans MySQL, en nous concentrant sur SHOW COLUMNS et DESCRIBE.

Points clés

SHOW COLUMNS est la façon la plus courante de lister les colonnes
DESCRIBE renvoie presque le même résultat que SHOW COLUMNS
✔ Vous pouvez également vérifier les listes de colonnes à l’aide d’outils GUI (MySQL Workbench, phpMyAdmin)

3. Avancé : Rechercher des colonnes avec des conditions

SHOW COLUMNS et DESCRIBE sont pratiques, mais lorsqu’on travaille avec un grand nombre de tables ou de colonnes, on peut souhaiter une recherche plus flexible.
Dans de tels cas, l’utilisation de INFORMATION_SCHEMA est très utile.
Ici, nous expliquons comment récupérer une liste de colonnes sur l’ensemble d’une base de données et comment trouver les tables contenant une colonne spécifique.

3-1. Obtenir une liste de colonnes pour toutes les tables d’une base de données

MySQL fournit une vue système appelée INFORMATION_SCHEMA.COLUMNS.
En l’utilisant, vous pouvez récupérer les informations de colonnes pour une base de données entière.

Syntaxe SQL

SELECT table_name, column_name
FROM information_schema.columns
WHERE table_schema = 'database_name';

Exemple

Par exemple, pour récupérer tous les noms de tables et de colonnes dans my_database :

SELECT table_name, column_name
FROM information_schema.columns
WHERE table_schema = 'my_database';

Sortie

+------------+--------------+
| table_name | column_name  |
+------------+--------------+
| users      | id           |
| users      | name         |
| users      | email        |
| orders     | id           |
| orders     | user_id      |
| orders     | total_price  |
+------------+--------------+

Cela permet de voir facilement quelles tables possèdent quelles colonnes d’un seul coup d’œil.

3-2. Trouver les tables contenant une colonne spécifique

Si vous souhaitez rechercher uniquement les tables contenant une colonne spécifique, vous pouvez également le faire avec INFORMATION_SCHEMA.COLUMNS.

Syntaxe SQL

SELECT table_name
FROM information_schema.columns
WHERE column_name = 'column_name'
AND table_schema = 'database_name';

Exemple

Par exemple, pour trouver les tables contenant la colonne email dans my_database :

SELECT table_name
FROM information_schema.columns
WHERE column_name = 'email'
AND table_schema = 'my_database';

Sortie

+------------+
| table_name |
+------------+
| users      |
| customers  |
+------------+

Cela montre que la colonne email existe dans la table users et la table customers.

3-3. Récupérer des informations détaillées sur les colonnes

Avec INFORMATION_SCHEMA.COLUMNS, vous pouvez également récupérer des détails tels que le type de données, l’acceptation des NULL et les valeurs par défaut.

Syntaxe SQL

SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'table_name'
AND table_schema = 'database_name';

Exemple

Par exemple, pour récupérer des informations détaillées pour chaque colonne de la table users :

SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'users'
AND table_schema = 'my_database';

Sortie

+-------------+-----------+------------+--------------+
| column_name | data_type | is_nullable | column_default |
+-------------+-----------+------------+--------------+
| id          | int       | NO         | NULL         |
| name        | varchar   | YES        | NULL         |
| email       | varchar   | YES        | NULL         |
| age         | int       | YES        | NULL         |
+-------------+-----------+------------+--------------+

3-4. Avantages et notes lors de l’utilisation d’INFORMATION_SCHEMA

Avantages

Vous pouvez récupérer les informations de colonnes pour une base de données entière (avec SHOW COLUMNS, vous ne pouvez récupérer qu’une seule table à la fois)
Vous pouvez filtrer librement à l’aide de requêtes SQL (vous pouvez utiliser une clause WHERE pour ne récupérer que des colonnes spécifiques)
Vous pouvez également faire des JOIN et combiner avec d’autres informations

Notes

Sur de grandes bases de données, les requêtes peuvent devenir lentes
Si vous ne spécifiez pas table_schema pour la base de données cible, des informations inutiles peuvent être incluses

Résumé

Dans cette section, nous avons utilisé INFORMATION_SCHEMA.COLUMNS pour expliquer
comment récupérer une liste de colonnes sur l’ensemble d’une base de données et comment trouver les tables contenant une colonne spécifique.

Points clés

✔ Avec INFORMATION_SCHEMA.COLUMNS, vous pouvez rechercher des colonnes spécifiques plutôt qu’une table complète
✔ Comparé à SHOW COLUMNS, cela permet un filtrage libre avec des requêtes SQL
✔ Vous pouvez également récupérer des informations détaillées sur les colonnes (type de données, autorisation NULL, valeurs par défaut, etc.)
✔ Pour les grandes bases de données, il faut faire attention aux performances

4. Automatisation : récupérer les listes de colonnes avec des scripts

Vous pouvez récupérer manuellement les listes de colonnes en utilisant SHOW COLUMNS ou INFORMATION_SCHEMA, mais
vous pouvez estimer que exécuter du SQL à chaque fois est gênant.

En particulier, la récupération automatisée des listes de colonnes est utile dans des cas tels que :

  • Lorsque vous souhaitez surveiller les changements d’une structure de base de données
  • Lorsque vous voulez enregistrer périodiquement les listes de colonnes afin de gérer l’historique des changements de schéma
  • Lorsque vous souhaitez vous intégrer à d’autres systèmes et récupérer les informations de colonnes dynamiquement

Cette section explique comment récupérer automatiquement les listes de colonnes MySQL à l’aide de scripts Python ou Shell.

4-1. Récupérer les listes de colonnes avec Python

Python fournit une bibliothèque appelée mysql-connector-python. En l’utilisant, vous pouvez vous connecter à MySQL et récupérer les listes de colonnes.

Préparer le script Python

Si la bibliothèque n’est pas installée, installez‑la avec la commande suivante.

pip install mysql-connector-python

Script Python

Ensuite, créez le script suivant.
Ce script récupère et affiche la liste des colonnes pour une table spécifique.

import mysql.connector

# Configure MySQL connection settings
config = {
    'user': 'your_user',
    'password': 'your_password',
    'host': 'localhost',
    'database': 'your_database'
}

# Connect to MySQL
conn = mysql.connector.connect(**config)
cursor = conn.cursor()

# Table name to retrieve
table_name = "users"

# Retrieve column list
query = f"SELECT column_name FROM information_schema.columns WHERE table_name = '{table_name}' AND table_schema = '{config['database']}'"
cursor.execute(query)

# Print results
columns = cursor.fetchall()
print(f"Column list for [{table_name}]:")
for column in columns:
    print(column[0])

# Close connection
cursor.close()
conn.close()

Exécuter le script

Lorsque vous exécutez le script, il affiche une liste de colonnes comme suit.

Column list for [users]:
id
name
email
age

4-2. Récupérer les listes de colonnes avec un script Shell

Vous pouvez également récupérer une liste de colonnes avec un script Shell (Bash) sans utiliser Python.
Dans les environnements Linux et l’administration de serveurs, cela peut être une option rapide et pratique.

Préparer le script Shell

Créez un script comme celui-ci et enregistrez‑le sous le nom mysql_columns.sh.

#!/bin/bash

DB_NAME="your_database"
TABLE_NAME="users"
USER="your_user"
PASSWORD="your_password"

# Retrieve column list using the MySQL command
mysql -u$USER -p$PASSWORD -D$DB_NAME -e "SELECT column_name FROM information_schema.columns WHERE table_name = '$TABLE_NAME' AND table_schema = '$DB_NAME';"

Comment exécuter

Accordez la permission d’exécution et lancez‑le.

chmod +x mysql_columns.sh
./mysql_columns.sh

Sortie

column_name
id
name
email
age

Cette méthode vous permet de récupérer rapidement les listes de colonnes sur un serveur Linux.

4-3. Récupérer et enregistrer périodiquement les listes de colonnes (tâche Cron)

Au lieu d’exécuter les scripts manuellement, vous pouvez également récupérer les listes de colonnes périodiquement et les enregistrer dans un fichier.
Par exemple, vous pouvez consigner la liste des colonnes une fois par jour pour suivre les changements de schéma.

Étapes

  1. Créer un script Python ou un script Shell (utilisez ceux ci‑dessus)
  2. Enregistrer la sortie dans un fichier
  3. Configurer une tâche cron

Exemple de script Shell qui enregistre la sortie

#!/bin/bash

DB_NAME="your_database"
TABLE_NAME="users"
USER="your_user"
PASSWORD="your_password"
OUTPUT_FILE="/path/to/logs/${TABLE_NAME}_columns_$(date +\%Y\%m\%d).txt"

# Retrieve column list and save to a file
mysql -u$USER -p$PASSWORD -D$DB_NAME -e "SELECT column_name FROM information_schema.columns WHERE table_name = '$TABLE_NAME' AND table_schema = '$DB_NAME';" > $OUTPUT_FILE

Configurer la tâche cron

Exécutez la commande suivante pour ouvrir la configuration du cron.

crontab -e

Ajoutez ensuite la ligne suivante. (S’exécute chaque jour à 3 h 00.)

0 3 * * * /path/to/mysql_columns.sh

Cela permet l’automatisation qui récupère les listes de colonnes chaque jour et les enregistre dans un fichier.

Résumé

Dans cette section, nous avons expliqué comment récupérer automatiquement les listes de colonnes MySQL avec des scripts.

Points clés

Vous pouvez récupérer les listes de colonnes avec un script Python (en utilisant MySQL Connector)
Vous pouvez également les récupérer avec un script Shell en utilisant la commande MySQL
Vous pouvez utiliser des tâches cron pour consigner les listes de colonnes périodiquement
Ceci est utile pour suivre l’historique des changements de schéma de la base de données

Dans l’article suivant, nous expliquons « Comment corriger les erreurs lorsqu’elles surviennent ».
Si vous souhaitez en savoir plus sur les erreurs d’autorisation et comment les corriger lors de l’exécution de SHOW COLUMNS ou INFORMATION_SCHEMA, assurez‑vous de consulter également la section suivante !

5. Gestion des erreurs : comment corriger les erreurs d’autorisation

Lors de la récupération des listes de colonnes avec SHOW COLUMNS ou INFORMATION_SCHEMA dans MySQL, vous pouvez rencontrer des erreurs telles que « permission denied ».

Cette section explique les causes courantes et les solutions.

5-1. Si vous obtenez une erreur avec SHOW COLUMNS

Lorsque vous exécutez SHOW COLUMNS, vous pouvez voir une erreur comme celle‑ci.

ERROR 1142 (42000): SELECT command denied to user 'user'@'localhost' for table 'users'

Cause

Cette erreur se produit parce que l’utilisateur n’a pas le privilège SELECT sur la table.
SHOW COLUMNS nécessite le privilège SELECT.

Solution

Connectez‑vous en tant qu’administrateur (utilisateur root) et accordez le privilège SELECT à l’utilisateur cible.

GRANT SELECT ON your_database.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Après cela, SHOW COLUMNS devrait fonctionner.

5-2. Si vous obtenez une erreur avec INFORMATION_SCHEMA

Lorsque vous exécutez une requête utilisant INFORMATION_SCHEMA, vous pouvez voir une erreur comme celle‑ci.

ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)

Cause

Pour interroger INFORMATION_SCHEMA, vous avez peut‑être besoin non seulement du privilège SELECT mais aussi de l’autorisation d’accéder à INFORMATION_SCHEMA.

Solution

Accordez l’accès à INFORMATION_SCHEMA avec les commandes suivantes.

GRANT SELECT ON information_schema.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Cela permet d’accéder à INFORMATION_SCHEMA.COLUMNS.

5-3. Si vous obtenez des erreurs même en tant qu’utilisateur root

Dans certains environnements, même l’utilisateur root peut avoir un accès restreint à SHOW COLUMNS ou INFORMATION_SCHEMA.
Dans ce cas, vérifiez les privilèges.

Comment vérifier les privilèges

SHOW GRANTS FOR 'root'@'localhost';

Si ALL PRIVILEGES n’est pas accordé, vous pouvez le corriger avec :

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

5-4. Modifications des autorisations dans MySQL 8.0

Dans MySQL 8.0, certains paramètres de privilèges par défaut ont changé.
En particulier, l’accès à INFORMATION_SCHEMA peut être restreint par défaut, ce qui peut provoquer des erreurs.

Solution

Dans MySQL 8.0, vous devrez peut‑être accorder le privilège SELECT sur la base de données mysql.

GRANT SELECT ON mysql.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

Cela peut permettre aux requêtes INFORMATION_SCHEMA de fonctionner également sous MySQL 8.0.

5-5. Si MySQL Workbench affiche « Access denied »

Lors de l’exécution de SHOW COLUMNS dans MySQL Workbench, vous pouvez voir un message d’erreur tel que :

Error: Access denied; you need (at least one of) the SELECT privilege(s) for this operation

Solution

Dans MySQL Workbench, vous pouvez également accorder des privilèges via l’interface graphique.

  1. Ouvrir « Administration » → « Users and Privileges »
  2. Sélectionner l’utilisateur cible
  3. Dans l’onglet « Schema Privileges », accorder le privilège SELECT
  4. Cliquer sur « Apply » pour enregistrer

Cela devrait permettre à MySQL Workbench de récupérer les listes de colonnes avec succès.

Résumé

Dans cette section, nous avons expliqué comment dépanner les erreurs lors de l’exécution de SHOW COLUMNS et INFORMATION_SCHEMA dans MySQL.

Points clés à retenir

Les erreurs SHOW COLUMNS sont généralement causées par l’absence de privilèges SELECT → corriger avec GRANT SELECT
Les erreurs INFORMATION_SCHEMA sont généralement causées par l’absence d’accès à information_schema.* → corriger avec GRANT SELECT ON information_schema.*
Dans MySQL 8.0, vous pouvez également avoir besoin de privilèges sur mysql.*
Les erreurs de privilèges dans MySQL Workbench peuvent être résolues via l’interface graphique

6. Comment vérifier les listes de colonnes à l’aide d’outils GUI

Jusqu’à présent, nous avons présenté des méthodes pour récupérer les listes de colonnes à l’aide de commandes SQL, mais avec les outils GUI (Interface Graphique Utilisateur), vous pouvez confirmer visuellement les colonnes.

Les outils GUI sont particulièrement utiles dans des situations telles que :

  • Lorsque des utilisateurs qui ne connaissent pas SQL souhaitent vérifier la structure de la base de données de manière intuitive
  • Lorsque vous voulez vérifier rapidement la liste des colonnes d’une table
  • Lorsque vous voulez rapidement comprendre les types de données et les contraintes des colonnes

Cette section explique comment vérifier les listes de colonnes à l’aide d’outils GUI principaux tels que MySQL Workbench et phpMyAdmin.

6-1. Vérifier les listes de colonnes dans MySQL Workbench

Qu’est-ce que MySQL Workbench ?

MySQL Workbench est l’outil officiel de gestion de bases de données de MySQL, et c’est un outil pratique qui vous permet de gérer visuellement les tables et les informations de colonnes via une interface graphique.

Étapes pour vérifier une liste de colonnes

  1. Lancer MySQL Workbench
  2. Se connecter à votre serveur MySQL
  • Sélectionner « Local Instance MySQL » ou la connexion que vous avez configurée
  1. Ouvrir l’onglet « Schemas »
  2. Développer la base de données cible (par ex., my_database)
  3. Faire un clic droit sur la table que vous souhaitez vérifier (par ex., users)
  4. Sélectionner « Table Inspector »
  5. Ouvrir l’onglet « Columns »

Ce que vous voyez dans la liste des colonnes

Dans l’onglet « Columns », vous verrez des informations comme ci‑dessous.

Column NameData TypeAllows NULLPrimary KeyDefault ValueAdditional Info
idINTNOPRIAUTO_INCREMENT 
nameVARCHAR(255)YES NULL 
emailVARCHAR(255)YESUNINULL 
ageINTYES NULL 

Vous pouvez vérifier les détails des colonnes de manière intuitive sans exécuter de SQL
Vous pouvez également vérifier les index et les contraintes avec la table

6-2. Vérifier les listes de colonnes dans phpMyAdmin

Qu’est-ce que phpMyAdmin ?

phpMyAdmin est un outil qui vous permet de gérer MySQL dans un navigateur web.
Il est souvent fourni par défaut sur les hébergements partagés et des environnements similaires, ce qui le rend facile à utiliser.

Étapes pour vérifier une liste de colonnes

  1. Se connecter à phpMyAdmin
  2. Sélectionner la base de données cible dans le menu de gauche
  3. Cliquer sur la table que vous souhaitez inspecter
  4. Ouvrir l’onglet « Structure »

Ce que vous voyez dans la liste des colonnes

Dans l’onglet « Structure », les informations des colonnes de la table sont affichées sous forme de tableau.

Column NameData TypeAllows NULLDefault ValueIndexComment
idINTNOAUTO_INCREMENTPRIMARY 
nameVARCHAR(255)YESNULL  
emailVARCHAR(255)YESNULLUNIQUE 
ageINTYESNULL  

Vous pouvez facilement vérifier les listes de colonnes dans un navigateur web
Vous pouvez ajouter/modifier/supprimer des colonnes via l’interface graphique

6-3. Outils alternatifs : DBeaver et TablePlus

En plus de MySQL Workbench et phpMyAdmin, il existe d’autres outils de gestion de bases de données utiles.

DBeaver

  • Multi-plateforme (Windows, Mac, Linux)
  • Prend en charge de nombreuses bases de données en plus de MySQL, comme PostgreSQL, SQLite et Oracle
  • Vous permet d’afficher les listes de colonnes avec une interface graphique intuitive

TablePlus

  • Interface simple, facile pour les débutants
  • Prend en charge MySQL, PostgreSQL, SQLite, et plus encore
  • Performances rapides pour une gestion de base de données confortable

Avec ces outils, la vérification des listes de colonnes et la manipulation des données deviennent encore plus fluides

Résumé

Dans cette section, nous avons expliqué comment vérifier les listes de colonnes à l’aide d’outils GUI.

Points clés

Dans MySQL Workbench, vous pouvez vérifier les colonnes dans « Table Inspector » → « Columns »
Dans phpMyAdmin, vous pouvez voir les informations des colonnes depuis l’onglet « Structure »
Des outils alternatifs tels que DBeaver et TablePlus sont également utiles
Les outils GUI vous permettent de confirmer les informations de colonnes de manière intuitive sans connaissance SQL

7. FAQ (Foire aux questions)

Voici les questions courantes que les lecteurs se posent sur la liste des colonnes MySQL.
Nous expliquons également les mises en garde lors de l’utilisation de SHOW COLUMNS et INFORMATION_SCHEMA, comment gérer les erreurs, et les usages avancés.

7-1. Quelle est la différence entre SHOW COLUMNS et DESCRIBE?

Question

« Quelle est la différence entre SHOW COLUMNS et DESCRIBE ? »

Answer

SHOW COLUMNS et DESCRIBE offrent presque la même fonctionnalité.
En fait, DESCRIBE est un alias de SHOW COLUMNS.

Exemple SHOW COLUMNS

SHOW COLUMNS FROM users;

Exemple DESCRIBE

DESCRIBE users;

Les différences sont principalement :

CommandFunctionDetails
SHOW COLUMNSRetrieve column informationSupports more detailed options
DESCRIBEAlias of SHOW COLUMNSShorter and easier to type

Dans la plupart des cas d’utilisation, DESCRIBE convient,
mais si vous avez besoin d’options plus flexibles, choisissez SHOW COLUMNS.

7-2. Quels sont les avantages d’utiliser INFORMATION_SCHEMA?

Question

« Quels sont les avantages d’utiliser INFORMATION_SCHEMA au lieu de SHOW COLUMNS ? »

Answer

Utiliser INFORMATION_SCHEMA.COLUMNS permet des recherches avancées telles que :

Récupérer les informations de colonnes sur l’ensemble d’une base de données
Trouver les tables contenant une colonne spécifique
Filtrer les résultats avec des clauses SQL WHERE

Par exemple, lorsque vous voulez « trouver toutes les tables qui ont une colonne email »,
SHOW COLUMNS ne peut pas le faire directement, mais INFORMATION_SCHEMA le peut.

SELECT table_name
FROM information_schema.columns
WHERE column_name = 'email'
AND table_schema = 'my_database';

SHOW COLUMNS ne peut récupérer les informations qu’une table à la fois,
mais INFORMATION_SCHEMA peut rechercher dans l’ensemble de la base de données.

7-3. Comment lister les tables contenant une colonne spécifique ?

Question

« Existe-t-il un moyen de lister les tables contenant une colonne spécifique dans une base de données ? »

Answer

Vous pouvez utiliser INFORMATION_SCHEMA.COLUMNS pour trouver les tables contenant une colonne spécifique.

Syntaxe SQL

SELECT table_name
FROM information_schema.columns
WHERE column_name = 'column_name'
AND table_schema = 'database_name';

Exemple
« Je veux trouver les tables qui contiennent une colonne email. »

SELECT table_name
FROM information_schema.columns
WHERE column_name = 'email'
AND table_schema = 'my_database';

Sortie

+------------+
| table_name |
+------------+
| users      |
| customers  |
+------------+

Cette méthode vous aide à confirmer rapidement quelles tables contiennent une colonne spécifique dans votre base de données.

7-4. Comment récupérer les commentaires de colonnes ?

Question

« Comment récupérer les informations de commentaire définies sur les colonnes ? »

Answer

Dans MySQL, vous pouvez définir des commentaires (descriptions) sur les colonnes.
Pour récupérer les commentaires, utilisez SHOW FULL COLUMNS ou INFORMATION_SCHEMA.COLUMNS.

Exemple SHOW FULL COLUMNS

SHOW FULL COLUMNS FROM users;

Utilisation d’INFORMATION_SCHEMA

SELECT column_name, column_comment
FROM information_schema.columns
WHERE table_name = 'users'
AND table_schema = 'my_database';

Sortie

+-------------+---------------------+
| column_name | column_comment      |
+-------------+---------------------+
| id          | User ID             |
| name        | User name           |
| email       | Email address       |
| age         | Age (optional)      |
+-------------+---------------------+

7-5. Comment automatiser la récupération des listes de colonnes avec des scripts ?

Question

« Existe-t-il un moyen de récupérer les listes de colonnes avec un script et de les enregistrer automatiquement ? »

Réponse

Avec des scripts Python ou Shell, vous pouvez récupérer et enregistrer les listes de colonnes périodiquement.

Exemple de script Python

import mysql.connector

config = {
    'user': 'your_user',
    'password': 'your_password',
    'host': 'localhost',
    'database': 'your_database'
}

conn = mysql.connector.connect(**config)
cursor = conn.cursor()

cursor.execute("SELECT column_name FROM information_schema.columns WHERE table_name = 'users'")
columns = cursor.fetchall()

print("Columns:")
for column in columns:
    print(column[0])

cursor.close()
conn.close()

Exemple de script Shell

#!/bin/bash

DB_NAME="your_database"
TABLE_NAME="users"
USER="your_user"
PASSWORD="your_password"

mysql -u$USER -p$PASSWORD -D$DB_NAME -e "SELECT column_name FROM information_schema.columns WHERE table_name = '$TABLE_NAME';"

Exécution planifiée (cron job)

0 3 * * * /path/to/mysql_columns.sh

(Récupère et consigne la liste des colonnes chaque jour à 3h00.)

Résumé

Dans cette section, nous avons présenté les questions fréquentes et leurs solutions concernant la liste des colonnes MySQL.

Points clés

SHOW COLUMNS et DESCRIBE sont similaires, mais SHOW COLUMNS est plus flexible
INFORMATION_SCHEMA vous permet de rechercher des colonnes dans toute la base de données
Utilisez INFORMATION_SCHEMA.COLUMNS pour trouver les tables contenant une colonne spécifique
Utilisez SHOW FULL COLUMNS ou INFORMATION_SCHEMA pour récupérer les commentaires des colonnes
Les scripts Python ou Shell peuvent automatiser la récupération des colonnes et cron peut les planifier

8. Résumé final

Dans cet article, nous avons expliqué en détail comment récupérer une liste de colonnes dans MySQL.
Des commandes SQL de base aux méthodes de recherche avancées, en passant par l’automatisation, la gestion des erreurs et l’utilisation d’outils GUI, nous avons couvert un large éventail de connaissances pratiques.
Enfin, récapitulons les points les plus importants de l’ensemble de l’article.

8-1. Vue d’ensemble complète : Comment lister les colonnes dans MySQL

Méthodes de base

MethodCommandNotes
SHOW COLUMNSSHOW COLUMNS FROM table_name;The simplest method. Retrieve per table.
DESCRIBEDESCRIBE table_name;An alias for SHOW COLUMNS.
INFORMATION_SCHEMASELECT column_name FROM information_schema.columns WHERE table_name = 'table_name' AND table_schema = 'database_name';Search column info across the entire database.

SHOW COLUMNS et DESCRIBE sont simples et pratiques
INFORMATION_SCHEMA vous permet de rechercher des colonnes dans toute la base de données

8-2. Méthodes avancées pour récupérer les informations de colonnes

MethodCommandPurpose
Retrieve columns for all tablesSELECT table_name, column_name FROM information_schema.columns WHERE table_schema = 'database_name';List all columns across the database.
Find tables containing a specific columnSELECT table_name FROM information_schema.columns WHERE column_name = 'column_name' AND table_schema = 'database_name';Find which tables contain the column.
Retrieve detailed column infoSELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name = 'table_name' AND table_schema = 'database_name';Check data types, NULL allowance, and defaults.

Vous pouvez rechercher les tables contenant une colonne spécifique (utile lors de modifications de schéma)
Vous pouvez également récupérer le type de données et les informations de permissivité NULL

8-3. Automatisation et gestion des erreurs

Méthodes d’automatisation

MethodLanguageCommand
Python scriptPythonUse mysql-connector-python
Shell scriptBashmysql -u user -p -e "SQL"
Scheduled run (cron job)Linux0 3 * * * /path/to/script.sh

Les scripts peuvent automatiser la liste des colonnes
Les tâches cron permettent une surveillance périodique du schéma

Gestion des erreurs

ErrorCauseSolution
SELECT command deniedNo SELECT privilege for SHOW COLUMNSGRANT SELECT ON your_database.* TO 'user'@'localhost';
Access denied for userNo privileges for INFORMATION_SCHEMAGRANT SELECT ON information_schema.* TO 'user'@'localhost';
Table doesn't existWrong table nameSpecify the correct database/table

Les erreurs liées aux privilèges peuvent être résolues avec la commande GRANT
L’utilisation de INFORMATION_SCHEMA peut nécessiter des privilèges spéciaux

8-4. Vérifier les listes de colonnes avec des outils GUI

Outils courants

ToolNotes
MySQL WorkbenchOfficial tool. Visually manage column information.
phpMyAdminEasy database management from a web browser.
DBeaverFeature-rich tool that supports many DBs beyond MySQL.
TablePlusSimple design and intuitive operation.

Les outils GUI vous permettent de vérifier les colonnes sans commandes SQL
La conception et l’édition de bases de données peuvent être effectuées de manière plus intuitive

8-5. Points forts de la FAQ

QuestionAnswer
What’s the difference between SHOW COLUMNS and DESCRIBE?They are almost the same, but SHOW COLUMNS has more options.
What are the benefits of using INFORMATION_SCHEMA?You can search across the database and find tables that contain a specific column.
How can I find tables that contain a specific column?Use INFORMATION_SCHEMA.COLUMNS.
How can I retrieve column comments?Use SHOW FULL COLUMNS or INFORMATION_SCHEMA.COLUMNS.
How can I automate column listing?Use Python/Shell scripts and schedule them with cron.

Fournir des réponses claires aux questions courantes
Utiliser des exemples SQL concrets pour améliorer la praticité

8-6. Conseils pour une gestion de base de données plus efficace

Enfin, voici quelques conseils pour améliorer l’efficacité de la gestion de bases de données.

Documentez la structure de vos tables

  • Utilisez SHOW CREATE TABLE pour enregistrer les structures de tables
  • Vérifiez INFORMATION_SCHEMA périodiquement pour suivre les changements de schéma

Mettez en place une gestion appropriée des privilèges

  • Utilisez GRANT et REVOKE pour limiter les privilèges inutiles
  • Utilisez les journaux d’audit pour enregistrer qui a modifié quelles tables

Automatisez les tâches récurrentes avec des scripts

  • Récupérez et consignez les listes de colonnes périodiquement à l’aide de scripts Python ou Shell
  • Utilisez des tâches cron pour surveiller les changements de schéma quotidiennement

Résumé et prochaines étapes

Dans cet article, nous avons expliqué comment lister les colonnes dans MySQL de manière systématique, des bases aux aspects avancés. En gestion et développement de bases de données, lister les colonnes est essentiel pour comprendre les structures de tables et améliorer l’efficacité du débogage.

Prochaines étapes

Essayez d’énumérer les colonnes dans MySQL dans votre environnement
Essayez d’automatiser le flux de travail avec Python ou des scripts Shell
Utilisez des outils GUI pour simplifier la gestion de bases de données

Avec ces compétences, vous pouvez gérer les bases de données MySQL plus efficacement ! 🚀