- 一、查询表结构
- 1 : SQL
- 2 : 字段说明
- 二、查询表字段
- 1 : SQL
- 2 : 字段说明
- 三、查询表键值
- 1 : SQL
- 2 : 字段说明
- 四、查询表Check约束
- 1 : SQL
- 2 : 字段说明
- 五、查询表索引
- 1 : SQL
- 2 : 字段说明
- 六、其他
- 1 : SHOW相关用法
查询数据库中所有表信息,包含视图等。
select * from information_schema.TABLES where TABLE_SCHEMA = '数据库名';
查询单个表信息
select * from information_schema.TABLES where TABLE_SCHEMA = '数据库名' and table_type = 'BASE TABLE';2 : 字段说明
| 字段 | 说明 |
|---|---|
| TABLE_CATALOG | 数据表登记⽬录 |
| TABLE_SCHEMA | 数据表所属的数据库名 |
| TABLE_NAME | 表名称 |
| TABLE_TYPE | 表类型 [system view | base table] |
| ENGINE | 使⽤的数据库引擎 [MyISAM | CSV | InnoDB] |
| VERSION | 版本,默认值10 |
| ROW_FORMAT | ⾏格式 [Compact | Dynamic | Fixed] |
| TABLE_ROWS | 表里所存多少行数据 |
| AVG_ROW_LENGTH | 平均行长度 |
| DATA_LENGTH | 数据长度 |
| MAX_DATA_LENGTH | 最大数据长度 |
| INDEX_LENGTH | 索引长度 |
| DATA_FREE | 空间碎片 |
| AUTO_INCREMENT | 做自增主键的自动增量当前值 |
| CREATE_TIME | 表的创建时间 |
| UPDATe_TIME | 表的更新时间 |
| CHECK_TIME | 表的检查时间 |
| TABLE_COLLATION | 表的字符校验编码集 |
| CHECKSUM | 校验和 |
| CREATE_OPTIONS | 创建选项 |
| TABLE_COMMENT | 表的注释、备注 |
查询数据库中所有表字段信息,包含视图等。
select * from information_schema.COLUMNS where TABLE_SCHEMA = '数据库名' ;
查询单个表或视图字段信息。
select * from information_schema.COLUMNS where TABLE_SCHEMA = '数据库名' and TABLE_NAME = '表名';2 : 字段说明
| 字段 | 说明 |
|---|---|
| TABLE_CATALOG | 数据表登记⽬录 |
| TABLE_SCHEMA | 数据表所属的数据库名 |
| TABLE_NAME | 表名称 |
| COLUMN_NAME | 列名 |
| ORDINAL_POSITION | 列标识号,即字段在表中第几列 |
| COLUMN_DEFAULT | 列的默认值 |
| IS_NULLABLE | 字段是否可以为空,如果列允许 null,那么该列返回 yes。否则,返回 no |
| DATA_TYPE | 数据类型 |
| CHARACTER_MAXIMUM_LENGTH | 以字符为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回 null。 |
| CHARACTER_OCTET_LENGTH | 以字节为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回 null。 |
| NUMERIC_PRECISION | 数据精度。近似数字数据、精确数字数据、整型数据或货币数据的精度。否则,返回 null。 |
| NUMERIC_SCALE | 数据规模。近似数字数据、精确数字数据、整数数据或货币数据的小数位数。否则,返回 null。 |
| DATETIME_PRECISION | datetime 及 sql-92 interval 数据类型的子类型代码。对于其它数据类型,返回 null。 |
| CHARACTER_SET_NAME | 字符集名称。如果该列是字符数据或 text 数据类型,那么为字符集返回唯一的名称。否则,返回 null。 |
| COLLATION_NAME | 字符集校验名称。如果列是字符数据或 text 数据类型,那么为排序次序返回唯一的名称。否则,返回 null。 |
| COLUMN_TYPE | 列类型 |
| COLUMN_KEY | 关键列 [NULL | MUL | PRI] |
| EXTRA | 额外描述 [NULL | on update CURRENT_TIMESTAMP | auto_increment] |
| PRIVILEGES | 字段操作权限 [select | select,insert,update,references] |
| COLUMN_COMMENT | 字段描述、注释 |
| GENERATION_EXPRESSION | 组合字段的公式 |
查询数据库中所有表键值。
select * from information_schema.KEY_COLUMN_USAGE WHERe TABLE_SCHEMA = '数据库名';
查询单个表键值
select * from information_schema.KEY_COLUMN_USAGE WHERe TABLE_SCHEMA = '数据库名' and TABLE_NAME = '表名';2 : 字段说明
| 字段 | 说明 |
|---|---|
| CONSTRAINT_CATALOG | 约束登记目录。键值所属的目录名称,该值始终为def |
| CONSTRAINT_SCHEMA | 约束所属的数据库名称 |
| CONSTRAINT_NAME | 约束的名称 |
| TABLE_CATALOG | 数据表登记目录。键值所在表所属的目录名称,该值始终为def |
| TABLE_SCHEMA | 键值所在表的数据库名称 |
| TABLE_NAME | 键值所属的表名 |
| COLUMN_NAME | 键值所属的列名。如果是外键约束,名称是该外键列,不是所引用的列 |
| ORDINAL_POSITION | 约束中列的位置,约束列在约束中的位置,从1开始标记。单个约束为1,组合约束由左至右从1标记 |
| POSITION_IN_UNIQUE_CONSTRAINT | 如果是唯一或者主键约束,值为NULL,如果是外键约束,该值为被引用表的列的位置 |
| REFERENCED_TABLE_SCHEMA | 外键依赖的数据库名 |
| REFERENCED_TABLE_NAME | 外键依赖的表名 |
| REFERENCED_COLUMN_NAME | 外键依赖的列名 |
查询数据库中的主键约束、外键约束、唯一约束、check约束。
select * from information_schema.TABLE_CONSTRAINTS WHERe TABLE_SCHEMA = '数据库名';
查询单个表约束信息
select * from information_schema.TABLE_CONSTRAINTS WHERe TABLE_SCHEMA = '数据库名' and TABLE_NAME = '表名';2 : 字段说明
| 字段 | 说明 |
|---|---|
| CONSTRAINT_CATALOG | 约束登记目录 |
| CONSTRAINT_SCHEMA | 约束所属的数据库名 |
| CONSTRAINT_NAME | 约束的名称 |
| TABLE_SCHEMA | 约束依赖表所属的数据库名(一般与CONSTRAINT_SCHEMA相同) |
| TABLE_NAME | 约束所属的表名 |
| CONSTRAINT_TYPE | 约束类型 [primary key | foreign key | unique | check ] |
查询数据库中的表索引信息。
select * from information_schema.STATISTICS WHERe TABLE_SCHEMA = '数据库名';
查询单个表索引信息
select * from information_schema.STATISTICS WHERe TABLE_SCHEMA = '数据库名' and TABLE_NAME = '表名';2 : 字段说明
| 字段 | 说明 |
|---|---|
| TABLE_CATALOG | 数据表登记目录。包含索引的表所属的目录的名称。 该值始终为def |
| TABLE_SCHEMA | 索引所属表的数据库名 |
| TABLE_NAME | 索引所属的表名 |
| NON_UNIQUE | 索引不唯一标识。索引字段值不能重复,则为0;能重复,则为1 |
| INDEX_SCHEMA | 索引所属的数据库名 (一般与TABLE_SCHEMA相同) |
| INDEX_NAME | 索引名称。如果是主键,则始终为PRIMARY |
| SEQ_IN_INDEX | 索引中的列序列号,索引列在索引中的位置,从1开始标记。单个索引为1,组合索引由左至右从1标记 |
| COLUMN_NAME | 索引列的列名 |
| COLLATION | 校对。列在索引中排序方式:A(升序),D(降序),NULL(未排序) |
| CARDINALITY | 基数(一般与该表的数据行数相同)。估计索引中唯一值的数量,该值不一定精确 |
| SUB_PART | 索引前缀。 如果列仅被部分索引,则索引字符的数量,如果整列被索引,则为NULL |
| PACKED | 指示密钥的打包方式。 默认为NULL |
| NULLABLE | 列是否可能包含NULL值,是则 YES,否则 “” |
| INDEX_TYPE | 索引类型 [BTREE | HASH | FULLTEXT | RTREE ],一般设置为BTREE(平衡树索引) |
| COMMENT | 有关未在其自己的列中描述的索引的信息 |
| INDEX_COMMENT | 索引注释、备注 |
SHOW DATABASES 查询MySQL Server上的数据库。
SHOW TABLES FROM db_name 查询数据库(db_name)中的表名称。
SHOW TABLE STATUS FROM db_name 查询数据库(db_name)的表信息,比较详细。
SHOW COLUMNS FROM tb_name FROM db_name SHOW FIELDS FROM tb_name FROM db_name 查询数据库(db_name)的表(tb_name)的列信息。
DESCRIBE tb_name col_name 需先选择数据库,查询表(tb_name)的列(col_name)信息。
SHOW FULL COLUMNS FROM tb_name FROM db_name SHOW FULL FIELDS FROM tb_name FROM db_name 查询数据库(db_name)的表(tb_name)的列信息,比较详细。
SHOW INDEX FROM tb_name FROM db_name 查询数据库(db_name)的表(tb_name)的索引信息。
SHOW STATUS 查询MySQL Server的状态信息。
SHOW VARIABLES 查询MySQL Server系参数值。
SHOW PROCESSLIST 查看当前MySQL查询进程。
SHOW GRANTS FOR user 查询用户(user)的授权命令。
有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺



