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/