Comment afficher le schéma d'une table dans une base de données MySQL?

Réponses:

535
describe [db_name.]table_name;

pour une sortie formatée, ou

show create table [db_name.]table_name;

pour l'instruction SQL qui peut être utilisée pour créer une table.

Omry Yadan
la source
2
Ce n'est pas la réponse. L'OP cherche à comprendre la partie "db_name", et cette solution suppose que vous le savez déjà
Antonio Ortells
40
le PO a accepté cette réponse il y a 7 ans. Je pense qu'il était satisfait de cette réponse.
Omry Yadan
La base de données n'est pas un schéma.
Coder le
1
ou desc [db_name.]table_name;pour faire court.
yakout
1
Dans la défense d'Antionio, certains systèmes se réfèrent à leurs collections de tables associées comme des schémas et non des bases de données. Je ne sais pas lequel ni pourquoi.
dlamblin
108
SHOW CREATE TABLE yourTable;

ou

SHOW COLUMNS FROM yourTable;
Policier
la source
18

Vous pouvez également utiliser un raccourci pour décrire comme descpour une description de table.

desc [nom_base.] nom_table;

ou

use db_name;
desc nom_table;

Vous pouvez également utiliser explainpour la description du tableau.

expliquer [nom_base.] nom_table;

Voir doc officiel

Donnera une sortie comme:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(10)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| age      | int(10)     | YES  |     | NULL    |       |
| sex      | varchar(10) | YES  |     | NULL    |       |
| sal      | int(10)     | YES  |     | NULL    |       |
| location | varchar(20) | YES  |     | Pune    |       |
+----------+-------------+------+-----+---------+-------+
Somnath Muluk
la source
12

Peut-être la question doit-elle être un peu plus précise ici sur ce qui est nécessaire car elle peut être lue de deux manières différentes. c'est à dire

  1. Comment obtenir la structure / définition d'une table dans mysql?
  2. Comment puis-je obtenir le nom du schéma / de la base de données dans lequel se trouve cette table?

Compte tenu de la réponse acceptée, le PO souhaitait clairement qu'elle soit interprétée de la première manière. Pour tous ceux qui lisent la question dans l'autre sens, essayez

SELECT `table_schema` 
FROM `information_schema`.`tables` 
WHERE `table_name` = 'whatever';
Paul Campbell
la source
Votre réponse pour le deuxième point m'a aidé pour ce que je cherche. Mon éditeur a renvoyé l'erreur indiquant "Objet non valide" sur la table que j'ai essayé d'utiliser et je n'ai aucune idée de la base de données ou du schéma sous lequel la table tombe car la table est déjà créée par quelqu'un d'autre, jusqu'à ce que j'obtienne ces informations
mannedear
5
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
Lam
la source