Est-il possible d'obtenir d'une manière ou d'une autre la structure de la base de données MySQL, ou simplement une table avec une simple requête?
Ou y a-t-il une autre façon, comment puis-je le faire?
Est-il possible d'obtenir d'une manière ou d'une autre la structure de la base de données MySQL, ou simplement une table avec une simple requête?
Ou y a-t-il une autre façon, comment puis-je le faire?
Réponses:
Je pense que ce que tu cherches c'est DESCRIBE
DESCRIBE table;
Vous pouvez aussi utiliser SHOW TABLES
SHOW TABLES;
pour obtenir une liste des tables de votre base de données.
Pour obtenir toute la structure de la base de données sous la forme d'un ensemble d' instructions CREATE TABLE , utilisez mysqldump :
mysqldump database_name --compact --no-data
Pour les tables simples, ajoutez le nom de la table après le nom de la base de données dans mysqldump. Vous obtenez les mêmes résultats avec SQL et SHOW CREATE TABLE :
SHOW CREATE TABLE table;
Ou DÉCRIVEZ si vous préférez une liste de colonnes:
DESCRIBE table;
show create table
était exactement ce que je cherchais. Merci!
Jetez un œil au INFORMATION_SCHEMA
. TABLES
table. Il contient des métadonnées sur toutes vos tables.
Exemple:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
L'avantage de cette méthode par rapport aux autres méthodes est que vous pouvez facilement utiliser des requêtes telles que celle ci-dessus en tant que sous-requêtes dans vos autres requêtes.
information_schema
. columns
(en utilisant une columns
table au lieu de tables
? Parce tables
que ne contient aucune information sur les types de colonnes de la table
en utilisant ceci:
SHOW CREATE TABLE `users`;
vous donnera le DDL pour cette table
DESCRIBE `users`
listera les colonnes de ce tableau
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
où Table_schema
est le nom de la base de données
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_db_name' AND TABLE_NAME ='users';
C'est la requête SHOW CREATE TABLE . Vous pouvez également interroger les TABLES SCHEMA .
SHOW CREATE TABLE YourTableName;
Une variante de la première réponse que j'ai trouvée utile
Ouvrez votre invite de commande et entrez (vous n'avez pas besoin d'être connecté à votre serveur mysql)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
SÉLECTIONNER COLUMN_NAME
DE INFORMATION_SCHEMA
. COLUMNS
WHERE TABLE_SCHEMA
= 'bodb' AND TABLE_NAME
= 'abc';
fonctionne pour obtenir tous les noms de colonnes
Dans l'exemple suivant,
playground
est le nom de la base de données etequipment
est le nom de la table
Une autre façon est d'utiliser SHOW-COLUMNS: 5.5 (disponible également pour 5.5>
)
$ mysql -uroot -p<password> -h<host> -P<port> -e \
"SHOW COLUMNS FROM playground.equipment"
Et la sortie:
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(50) | YES | | NULL | |
| quant | int(11) | YES | | NULL | |
| color | varchar(25) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
On peut également utiliser mysqlshow-client (également disponible pour 5.5>
) comme suit:
$ mysqlshow -uroot -p<password> -h<host> -P<port> \
playground equipment
Et la sortie:
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id | int(11) | | NO | PRI | | auto_increment | select,insert,update,references | |
| type | varchar(50) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
| quant | int(11) | | YES | | | | select,insert,update,references | |
| color | varchar(25) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
SHOW TABLES FROM database_name