开发时,经常需要查看表的 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

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 |
网友评论