如何通过查询获取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_SCHEMA
。 COLUMNS
WHERE TABLE_SCHEMA ='bodb'AND TABLE_NAME
='abc';
用于获取所有列名称
现在,人们使用DESC
而不是DESCRIPTION
。 例如: – DESC users;