元数据库数据字典

云原生数据仓库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查询需要的列信息。