MySql系统数据库:information_schema

简单介绍

information_schema:mysql自带的数据库,用于存储数据库元数据,例如数据库名、表名、列的数据类型、访问权限等。通过查询information_schema中的视图和表,用户可以获取数据库架构的详细信息,以便进行元数据管理、数据字典生成、权限管理等。

数据库的部分表结构

information_schema.tables

表示查询数据库information_schema的表tables。

tables:information_schema的一张表,用于存储数据库的表信息,包括表属于哪个数据库、表的名称、表的类型、创建时间、存储引擎。

information_schema.columns

information_schema.columns: 数据库information_schema的表columns,存储了关于数据库中所有表的列的信息。

下面来看一段mysql代码:

select column_name,
                   (case when (is_nullable = 'no' <![CDATA[ && ]]> column_key != 'PRI') then '1' else '0' end) as is_required,
                   (case when column_key = 'PRI' then '1' else '0' end) as is_pk,
                   ordinal_position as sort,
                   column_comment,
                   (case when extra = 'auto_increment' then '1' else '0' end) as is_increment,
                   column_type
            from information_schema.columns where table_schema = (select database()) and table_name = (#{tableName})
            order by ordinal_position
解释字段:

is_nulable: 如果列有关键字NOT NULL修饰,则结果为no,表示不能为空,反之则为yes.

column_key: 判断列是否为主键,是则显示’PRI’.

ordinal_position: 排列顺序

column_comment: 列注释

extra: 额外信息

column_type: 列类型

select database():查询当前使用的是哪个数据库

case when: 这是在sql中启动了一个条件语句,如果条件成立,则执行then语句内容,否则实行else语句内容。

<![CDATA[ && ]]>: 目的是为了让XML解析器让将’&&’视为纯文本而不是XML标记。


MySql系统数据库:information_schema
http://example.com/2024/04/13/MySq系统数据库:information-schema/
发布于
2024年4月13日
更新于
2024年4月21日
许可协议