云原生数据仓库AnalyticDB MySQL版的元数据库为INFORMATION_SCHEMA库,兼容MySQL的元数据库。查询元数据库可以直接在JDBC连接中使用SQL语句进行查询。查询test库下的所有表,示例如下:

select * from TABLES where table_schema='test'

SCHEMATA

SCHEMATA表提供了关于数据库的信息。

FIELD TYPE ALLOW_NULL DEFAULT COMMENT
CATALOG_NAME varchar(16) YES NULL CATALOG名称
SCHEMA_NAME varchar(64) NO NULL SCHEMA名称
DEFAULT_CHARACTER_SET_NAME varchar(64) YES UTF-8 默认字符集
DEFAULT_COLLATION_NAME varchar(64) YES OFF 默认排序规则
SQL_PATH varchar(255) YES NULL SQL路径

TABLES

TABLES表提供数据库表信息。该部分数据包括表的元数据与部分表对应数据的元数据,如分区信息等。

FIELD TYPE ALLOW_NULL DEFAULT COMMENT
TABLE_CATALOG varchar(512) NO NULL 固定值'def'
TABLE_SCHEMA varchar(64) NO NULL 所属SCHEMA的名称
TABLE_NAME varchar(64) NO NULL 表名称
TABLE_TYPE varchar(64) YES NULL 标记:分区表PARTITION_TABLE、维度表DIMENSION_TABLE
ENGINE varchar(64) YES NULL 引擎类型
VERSION bigint(21) YES NULL tableId
ROW_FORMAT varchar(20) YES NULL 固定值'Compact'
TABLE_ROWS bigint(21) YES NULL 记录条数
AVG_ROW_LENGTH bigint(21) YES NULL 未使用,为null
DATA_LENGTH bigint(21) YES NULL 数据大小
MAX_DATA_LENGTH bigint(21) YES NULL 未使用,为null
INDEX_LENGTH bigint(21) YES NULL 索引大小
DATA_FREE bigint(21) YES NULL 未使用,为null
AUTO_INCREMENT bigint(21) YES NULL 表的自增值(未使用,为null)
CREATE_TIME datetime YES NULL 创建时间
UPDATE_TIME datetime YES NULL 更新时间
CHECK_TIME datetime YES NULL 未使用,为null
TABLE_COLLATION varchar(32) YES NULL 固定值“utf8_bin”
CHECKSUM bigint(21) YES NULL 未使用,为null
CREATE_OPTIONS varchar(255) YES NULL 未使用,为null
TABLE_COMMENT varchar(255) YES NULL 表注释
  • 如果不知道具体的表名,只是希望了解某一个SCHEMA下有多少张不同类型的表,可以查询这张表。例如:
    SELECT DISTINCT TABLE_CATALOG, TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx';
  • 如果希望了解某一个SCHEMA下面哪些是视图,可以查询这张表。例如:
    SELECT TABLE_CATALOG, TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx' AND TABLE_TYPE = 'VIEW';

COLUMNS

该表存储了所有的表中字段的详细信息。

FIELD TYPE ALLOW_NULL DEFAULT COMMENT
TABLE_CATALOG varchar(8) YES NULL CATALOG名称
TABLE_SCHEMA varchar(64) NO NULL 所属SCHEMA
TABLE_NAME varchar(64) NO NULL 所属表名
COLUMN_NAME varchar(64) NO NULL 列名
ORDINAL_POSITION bigint(21) YES NULL 在表中的位置
COLUMN_DEFAULT varchar(255) YES NULL 默认列
IS_NULLABLE tinyint(1) YES 1 是否允许空
DATA_TYPE bigint(21) YES NULL 数据类型名称
CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL 字符最大长度
CHARACTER_OCTET_LENGTH bigint(21) YES NULL 字符八进制长度
NUMERIC_PRECISION int(11) YES NULL 数值精度
NUMERIC_SCALE bigint(21) YES NULL 数值范围
DATETIME_PRECISION bigint(21) YES NULL 时间精度
CHARACTER_SET_NAME varchar(32) YES NULL 字符集名称
COLLATION_NAME varchar(32) YES NULL 排序规则名称
COLUMN_TYPE varchar(64) YES NULL 列类型
COLUMN_KEY varchar(3) NO NULL 索引类型
EXTRA varchar(30) NO NULL 是否on update
PRIVILEGES varchar(80) NO NULL 固定值:select,insert,update,references
COLUMN_COMMENT varchar(1024) 1024 NULL 列注释

如果希望了解某一个表包含的所有列信息,可以根据TABLE_SCHEMA和TABLE_NAME查询需要的列信息。