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

Jak*_*old 161 mysql

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

或者有另一种方式,我该怎么办?

Bil*_*ard 239

我认为你所追求的是 DESCRIBE

DESCRIBE table;
Run Code Online (Sandbox Code Playgroud)

你也可以使用 SHOW TABLES

SHOW TABLES;
Run Code Online (Sandbox Code Playgroud)

获取数据库中的表列表.

  • 要针对特定​​的数据库使用:`SHOW TABLES FROM database_name` (5认同)

Eem*_*ola 101

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

mysqldump database_name --compact --no-data
Run Code Online (Sandbox Code Playgroud)

对于单个表,请在mysqldump中的db name之后添加表名.使用SQL和SHOW CREATE TABLE获得相同的结果:

SHOW CREATE TABLE table;
Run Code Online (Sandbox Code Playgroud)

或者DESCRIBE如果你喜欢列清单:

DESCRIBE table;
Run Code Online (Sandbox Code Playgroud)

  • `show create table`正是我想要的.谢谢! (3认同)

Zen*_*hai 40

看看吧INFORMATION_SCHEMA.TABLES表.它包含有关所有表的元数据.

例:

SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
Run Code Online (Sandbox Code Playgroud)

与其他方法相比,这种方法的优势在于您可以轻松地使用上述查询作为其他查询中的子查询.

  • 是不是它应该是`information_schema``columns`(使用`columns`表而不是`tables`?因为`tables`不包含哪些类型是表列的任何信息 (5认同)

duc*_*lip 32

使用这个:

SHOW CREATE TABLE `users`;
Run Code Online (Sandbox Code Playgroud)

将为您提供该表的DDL

DESCRIBE `users`
Run Code Online (Sandbox Code Playgroud)

将列出该表中的列

  • @soulmerge,我也是一个学生,但我觉得你错了:"法语'感谢'是'merci'"是一个非常可以接受的英语句子(不低于"法语词汇"等) ,这概括为"{{language to express}}"的{{language name}},例如"此表的DDL"."AC功能本身并不是C"与"法语单词本身并不是法语"相同:当然,它并非全是法语,而是说"'Au revoir'是法语"并不令人反感(显然它意味着它是法国的一部分,而不是法国的全部! - ). (17认同)

小智 18

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products'; 
Run Code Online (Sandbox Code Playgroud)

Table_schema数据库名称在哪里


sou*_*rge 13

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

SHOW CREATE TABLE YourTableName;
Run Code Online (Sandbox Code Playgroud)


小智 10

您可以选择以下任一命令。它们或多或少都是相同的:

SHOW CREATE TABLE TABLE_NAME;

DESC TABLE_NAME;

SHOW FULL COLUMNS FROM TABLE_NAME; (对于列属性)

EXPLAIN TABLE_NAME;

DESCRIBE TABLE_NAME;


LGG*_*LGG 7

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

打开命令提示符并输入(您不必登录到您的mysql服务器)

mysqldump -hlocalhost -u<root> -p<password>  <dbname>  --compact --no-data > </path_to_mydump/>mysql.dmp
Run Code Online (Sandbox Code Playgroud)