在MySQL控制台中,哪个命令显示任何给定表的模式?
当前回答
对于格式化输出:
describe [db_name.]table_name;
对于可用于创建表的SQL语句:
show create table [db_name.]table_name;
其他回答
也许这个问题需要稍微更精确一点,关于需要什么,因为它可以有两种不同的理解方式。即。
我如何得到一个表的结构/定义在mysql? 如何获取这个表所在的模式/数据库的名称?
鉴于已被接受的答案,OP显然打算以第一种方式解释它。如果有人从另一种角度看问题,试试
SELECT `table_schema`
FROM `information_schema`.`tables`
WHERE `table_name` = 'whatever';
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
也可以使用描述的简写,如使用表描述的desc。
desc [db_name] table_name;
or
使用db_name; desc table_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 | |
+----------+-------------+------+-----+---------+-------+
对于格式化输出:
describe [db_name.]table_name;
对于可用于创建表的SQL语句:
show create table [db_name.]table_name;
SHOW CREATE TABLE yourTable;
or
SHOW COLUMNS FROM yourTable;
推荐文章
- MySQL对重复键更新在一个查询中插入多行
- 使用{merge: true}设置的Firestore与更新之间的差异
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 使用电子邮件地址为主键?
- MySQL:如何复制行,但改变几个字段?
- 不能删除或更新父行:外键约束失败
- MongoDB在v4之前不兼容ACID意味着什么?
- Mysql错误1452:不能添加或更新子行:外键约束失败
- MySQL DISTINCT在GROUP_CONCAT()上
- 第一次设计数据库:我是否过度设计了?
- MySQL选择一个列DISTINCT,与其他列相对应
- 错误1022 -不能写;表中重复的键
- 如何修改列和更改默认值?
- 如何在MySQL 8.0中授予root用户所有权限
- mysqld_safe UNIX套接字文件目录“/var/run/mysqld”不存在