一、查询表结构
1 : SQL
查询数据库中所有表信息,包含视图等。
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 | 表的注释、备注 |
二、查询表字段
1 : SQL
查询数据库中所有表字段信息,包含视图等。
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 | 组合字段的公式 |
三、查询表键值
1 : SQL
查询数据库中所有表键值。
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约束
1 : SQL
查询数据库中的主键约束、外键约束、唯一约束、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 ] |
五、查询表索引
1 : SQL
查询数据库中的表索引信息。
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 | 索引注释、备注 |
六、其他
1 : SHOW相关用法
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)的授权命令。
有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!???
|