421

MySQL控制台,什么命令显示任何给定表的模式?

4

5 回答 5

616

对于格式化输出:

describe [db_name.]table_name;

对于可用于创建表的 SQL 语句:

show create table [db_name.]table_name;
于 2009-09-30T15:20:05.330 回答
114
SHOW CREATE TABLE yourTable;

或者

SHOW COLUMNS FROM yourTable;
于 2009-09-30T15:17:34.947 回答
19

您也可以使用简写作为描述作为desc表描述。

desc [db_name.]table_name;

或者

使用 db_name;
描述表名;

您也可以explain用于表格描述。

解释 [db_name.]table_name;

官方文档

将给出如下输出:

+----------+-------------+------+-----+---------+-------+
| 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    |       |
+----------+-------------+------+-----+---------+-------+
于 2016-01-27T14:09:45.813 回答
15

也许这个问题需要在这里稍微更精确一点,因为它可以用两种不同的方式来阅读。IE

  1. 如何获取 mysql 中表的结构/定义?
  2. 如何获取此表所在的架构/数据库的名称?

鉴于已接受的答案,OP 显然打算以第一种方式对其进行解释。对于以其他方式阅读问题的任何人,请尝试

SELECT `table_schema` 
FROM `information_schema`.`tables` 
WHERE `table_name` = 'whatever';
于 2017-11-10T11:33:46.370 回答
6
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
于 2016-10-14T10:31:49.467 回答