如何通过查询获取MySQL中的数据库结构

是否有可能以某种方式获得MySQL数据库的结构,或只是一些简单的查询表?

或者还有另一种方法,我该怎么做呢?

我认为你所追求的是DESCRIBE

 DESCRIBE table; 

你也可以使用SHOW TABLES

 SHOW TABLES; 

获取数据库中表的列表。

要将整个数据库结构作为一组CREATE TABLE语句使用,请使用mysqldump :

 mysqldump database_name --compact --no-data 

对于单个表,请在mysqldump中的db名称后添加表名。 你用SQL和SHOW CREATE TABLE得到相同的结果:

 SHOW CREATE TABLE table; 

或者如果你喜欢列名单,请描述:

 DESCRIBE table; 

看看INFORMATION_SCHEMA 。 表格表。 它包含有关所有表的元数据。

例:

 SELECT * FROM `INFORMATION_SCHEMA`.`TABLES` WHERE TABLE_NAME LIKE 'table1' 

这比其他方法的好处是,你可以很容易地使用上面的查询作为其他查询中的子查询。

使用这个:

 SHOW CREATE TABLE `users`; 

会给你这个表的DDL

 DESCRIBE `users` 

将列出该表中的列

 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products'; 

其中Table_schema是数据库名称

第一个答案的变化,我觉得有用

打开你的命令提示符并input(你不必login到你的mysql服务器)

 mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp 

这是SHOW CREATE TABLE查询。 您也可以查询SCHEMA TABLES 。

 SHOW CREATE TABLE YourTableName; 

SELECT COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_SCHEMA ='bodb'AND TABLE_NAME ='abc';

用于获取所有列名称

现在,人们使用DESC而不是DESCRIPTION 。 例如: – DESC users;