开发时,经常需要查看表的 ddl ,一般大家都使用图形化工具,比如 JetBrasins 开发的的 DataGrid,其他的有 Navicat、MySQL Workbench、sqlyog 等软件。
使用过程中,我发现很多时候开的窗口太多了,切来切去很花时间。比如我在用的navicat,一个业务经常涉及多个schema,多个table,有时候切来切去很麻烦,其中就包括查看表的定义。
所以必要的时候,用简单的 SQL 去查询一下,还是很方便的。
常见用法
-
DESC <table name>;
获取表结构,可以的看到输出列,如果仅是查看字段名、类型等基础信息,指令简短高效
desc.png
-
DESCRIBE <table name>;
获取表结构,同 上
describe.png
-
SHOW FULL COLUMNS FROM <table name>
获取表结构,可以看到输出增加了三列,多了排序规则、当前用户的权限、以及注释。如果想查看注释,用这个比较合适。
SHOW FULL COLUMNS FROM.png
-
SHOW FULL FIELDS FROM <table name>
获取表结构,同上
SHOW FULL FIELDS FROM.png
-
SHOW CREATE TABLE <table name>
获取建表语句,其中包含所有信息
SHOW CREATE TABLE .png
SHOW CREATE TABLE.png
information_schema
上述信息其实都在 information_schema这个schema中保存,除了使用 desc、show这种关键字去查询,也可直接使用 SQL 查询。
SHOW TABLES; 查看 information_schema 中有哪些表。
| 表名 | 用途 |
|---|---|
| CHARACTER_SETS | |
| COLLATIONS | |
| COLLATION_CHARACTER_SET_APPLICABILITY | |
| COLUMNS | |
| COLUMN_PRIVILEGES | |
| ENGINES | |
| EVENTS | |
| FILES | |
| GLOBAL_STATUS | |
| GLOBAL_VARIABLES | |
| KEY_COLUMN_USAGE | |
| OPTIMIZER_TRACE | |
| PARAMETERS | |
| PARTITIONS | |
| PLUGINS | |
| PROCESSLIST | |
| PROFILING | |
| REFERENTIAL_CONSTRAINTS | |
| ROUTINES | |
| SCHEMATA | |
| SCHEMA_PRIVILEGES | |
| SESSION_STATUS | |
| SESSION_VARIABLES | |
| SQL_FILTER_INFO | |
| STATISTICS | |
| TABLES | |
| TABLESPACES | |
| TABLE_CONSTRAINTS | |
| TABLE_PRIVILEGES | |
| TRIGGERS | |
| USER_PRIVILEGES | |
| VIEWS | |
| TABLE_STATISTICS | |
| INDEX_STATISTICS | |
| IO_STATISTICS | |
| PERF_STATISTICS | |
| INNODB_LOCKS | |
| INNODB_TRX | |
| INNODB_SYS_DATAFILES | |
| INNODB_FT_CONFIG | |
| THREADPOOL_INFO | |
| INNODB_CMP | |
| INNODB_FT_BEING_DELETED | |
| INNODB_CMP_RESET | |
| INNODB_CMP_PER_INDEX | |
| INNODB_CMPMEM_RESET | |
| INNODB_FT_DELETED | |
| INNODB_BUFFER_PAGE_LRU | |
| INNODB_LOCK_WAITS | |
| INNODB_TEMP_TABLE_INFO | |
| INNODB_PURGE_FILES | |
| INNODB_SYS_TABLES | |
| INNODB_SYS_FIELDS | |
| INNODB_CMP_PER_INDEX_RESET | |
| INNODB_BUFFER_PAGE | |
| INNODB_SYS_INDEXES | |
| INNODB_FT_INDEX_TABLE | |
| INNODB_FT_INDEX_CACHE | |
| INNODB_TABLESPACE_MASTER_KEY | |
| INNODB_METRICS | |
| INNODB_SYS_FOREIGN_COLS | |
| INNODB_CMPMEM | |
| INNODB_BUFFER_POOL_STATS | |
| INNODB_SYS_COLUMNS | |
| INNODB_SYS_FOREIGN | |
| INNODB_SYS_TABLESTATS | |
| INNODB_FT_DEFAULT_STOPWORD | |
| INNODB_SYS_TABLESPACES | |
| INNODB_SYS_VIRTUAL |












网友评论