MySQL元数据库——information_schema

mySQL元数据库&账户管理&引擎 信息数据库,保存mysql所维护的其他数据库信息,例如数据库名,数据库的表,表栏的数据类型与访问权限等。,不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。只允许插入和查询,不允许修改和删除,压缩存储,节约空间,可以实现高并发的插入,支持在自增id上建立索引。需要赋权的用户名,@带的是Host,表示赋权操作针对那些链接,详情查看【host列说明】需要赋权的用户名,@带的是Host,表示赋权操作针对那些链接,详情查看【host列说明】... 阅读详情

平时使用MySQL客户端操作数据库的同学,只要稍微留神都会发现,除了我们建的库之外,还经常看到三个数据库的影子:

1. information_schema
2. performance_schema
3. mysql

这三个数据库究竟是什么东西呢?今天我们好好认识一下MySQL三个火枪手中的information_schema。

一、数据库实例和数据库

在认识information_schema前,我们先了解下数据库实例和数据库的区别和联系。我们本地启动MySQL服务,就是启动了一个数据库实例,他首先是一个进程管理了一系列的数据库文件。而我们执行create database cmcc_web 这条SQL语句时,才是真正创建一个数据库,他是一堆表的集合,其实也是文件的集合。简而言之,数据库实例就是RDBMS(数据库管理系统),数据库就是Database,Database是存放数据的仓库,RDBMS就是管理仓库的系统。
在MySQL中,每个schema就是对应一个数据库。这个词将会在下面的篇幅频繁出现。

二、数据库元数据

元(meta),一般被我们翻译成“关于……的……”。元数据(meta data)——“data about data” 关于数据的数据,一般是结构化数据(如存储在数据库里的数据,规定了字段的长度、类型等)。(这段话来源于知乎)。
所以metadata就是描述数据的数据,在MySQL中就是描述database的数据。有哪些数据库、每个表有哪些表、表有多少字段、字段是什么类型等等,这样的数据就是数据库的元数据。

官方定义:

INFORMATION_SCHEMA provides access to database metadata, information about the MySQL server such as the name of a database or table, the data type of a column, or access privileges

综上,我们可以称information_schema是一个元数据库。它就像物业公司的信息库,对管理的每栋大厦有多少电梯、电梯型号、每个房间的长宽高等等了如指掌。

三、常见的表

1、SCHEMATA
提供数据库信息,有哪些数据库,字符集是GBK还是UTF-8等等。常用字段:

字段名含义备注
SCHEMA_NAME数据库名
DEFAULT_CHARACTER_SET_NAME字符集
DEFAULT_COLLATION_NAME排序规则

等同命令:SHOW DATABASES

2、TABLES
提供表的信息,数据库有哪些表,是什么存储引擎等等。常用字段:

字段名含义备注
SCHEMA_NAME数据库名
TABLE_NAME表名
TABLE_TYPE表的类型类型有BASE TABLE、VIEW、SYSTEM VIEW
ENGINE存储引擎
CREATE_TIME建表时间

等同命令:SHOW TABLES

3、COLUMNS
提供字段的信息,有哪些字段字段类型是什么等等。常用字段:

字段名含义备注
SCHEMA_NAME数据库名
TABLE_NAME表名
COLUMN_NAME字段名
COLUMN_TYPE字段类型如int(10),varchar(250)

等同命令:SHOW COLUMNS 或者 desc tctest.emp 看emp表的具体字段。

4、STATISTICS
这张表的单词是统计的意思,但是却是索引的信息,真奇怪。常用字段:

字段名含义备注
SCHEMA_NAME数据库名
TABLE_NAME表名
INDEX_SCHEMA也是数据库名
INDEX_NAME索引名
COLUMN_NAME字段名
INDEX_TYPE索引类型一般是BTREE

等同命令:SHOW INDEX

5、TABLE_CONSTRAINTS
提供约束情况,我们想看看表有哪些约束?约束指的是唯一性约束、主键约束、外键约束。常用字段:

字段名含义备注
CONSTRAINT_SCHEMA数据库名
CONSTRAINT_NAME约束名
TABLE_SCHEMA也是数据库名
TABLE_NAME表名
CONSTRAINT_TYPE约束类型UNIQUE、PRIMARY KEY、FOREIGN KEY

唯一约束和主键约束,我们在前面的索引中一样可以查到。

6、KEY_COLUMN_USAGE
有STATISTICS和TABLE_CONSTRAINTS表,为什么还需要KEY_COLUMN_USAGE?
因为外键时没有指出参考的是哪张表的哪个字段!常用字段:

字段名含义备注
CONSTRAINT_SCHEMA数据库名
CONSTRAINT_NAME约束名PRIMARY或列名或外键名
TABLE_SCHEMA也是数据库名
TABLE_NAME表名
COLUMN_NAME列名
REFERENCED_TABLE_SCHEMA参考的数据库
REFERENCED_TABLE_NAME参考的表
REFERENCED_COLUMN_NAME参考的列

相比前面两个,KEY_COLUMN_USAGE这个表的信息是最全的。包括主键、外键、唯一约束。

7、ROUTINES
routines是程序的意思,在MySQL当然指的是函数和存储过程

字段名含义备注
SPECIFIC_NAME程序名
ROUTINE_SCHEMA数据库名
ROUTINE_NAME程序名
ROUTINE_TYPE程序类型PROCEDURE或FUNCTION
ROUTINE_BODY函数体好像都是SQL
ROUTINE_DEFINITION具体的程序语句

并没有show ROUTINES语句。

8、VIEWS
查询数据库下所有的视图

字段名含义备注
TABLE_SCHEMA数据库名
TABLE_NAME表名
VIEW_DEFINITION视图定义语句

9、TRIGGERS
查询所有的触发器

字段名含义备注
TRIGGER_SCHEMA数据库名
TRIGGER_NAME触发器名
EVENT_OBJECT_SCHEMA触发的数据库
EVENT_OBJECT_TABLE触发的表
ACTION_STATEMENT触发的语句
ACTION_TIMING触发时机BEFORE或AFTER

等同命令:show triggers from tctest

10、其他表
ENGINES:列举了当前数据库对InnoDB、MEMORY、MyISAM等各种存储引擎的支持情况。等同show ENGINES
GLOBAL_VARIABLES:服务器变量设置,一些开关和设置。等同命令show global variables。除了global还有session。
PLUGINS:MySQL的插件列表。可以看到存储引擎InnoDB甚至binlog都是插件!binlog是强制加载的,InnoDB是默认打开的。等同命令show PLUGINS
PROCESSLIST:查看正在运行的线程!比如我查这个表,就看到一个查询的线程。等同命令show full processlist

四、是表还是视图?

文档说information_schema下的表不是基本表,而是视图。但是在VIEWS中查不到,在TABLES中能查到这些表,表类型是SYSTEM VIEW。存储引擎使用的是MEMORY或MyISAM。
使用show命令

show create table information_schema.`TABLES`;

可以看到创建的是临时表,存储引擎是MEMORY

CREATE TEMPORARY TABLE `TABLES`(
)ENGINE=MEMORY


五、show命令还是select语句

show命令更简便,有时也能达到相同目的。但是输出格式已固定,select表的结果更完善,符合SQL标准。

六、Oracle中有information_schema吗?

没有实践过,但是平时使用Oracle时没有见到过这个库。官方的FAQ给出了结果:

F:What is the difference between the Oracle Data Dictionary and MySQL INFORMATION_SCHEMA?

A:Both Oracle and MySQL provide metadata in tables. However, Oracle and MySQL use different table names and column names. The MySQL implementation is more similar to those found in DB2 and SQL Server, which also support INFORMATION_SCHEMA as defined in the SQL standard.

大意是DB2和SQL Server都支持information_schema,Oracle有元数据表,但是列名和表名不一样。

MySQL、Oracle和SQL server的元数据库 information_schema.tables 【INFORMATION_SCHEMA 数据库】 是MySQL自带的一个数据库,确切说是信息数据库,它提供了访问数据库 元数据 的方式。什么是 元数据 呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。你也可以理解为是数据库的“数据词典”和“系统目录”。 在 【INFORMATION_SCHEMA 】中,有很多个 只读 表。它们实际上是 视图 ,而不是基本表,因此,你将无法... 阅读详情

相关推荐

高杂合度基因组组装实战:Hifiasm参数调优与purge_dups过滤效果对比(附猪毛菜案例)

本文深入探讨了高杂合度基因组组装中Hifiasm参数调优与purge_dups过滤的实战效果对比,通过猪毛菜案例详细解析了两种方法的适用场景与优化策略。文章重点分析了purge_dups在contig过滤中的显著效果,为基因组组装提供了关键的技术参考。

weixin_29232121的博客 495

数据库(一)InnoDB 与 MyISAM对比

1)InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了; 2)MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用 ; 3)InnoDB支持外键,MyISAM不支持 ; 4)从MySQL5.5.5以后,InnoDB是默认引擎; 5)InnoDB不支持FULLTEXT类型的索引 ; 6)InnoDB中不保存表的行数,如select count() fr..

Keep_persistence的博客 375

从零到一:桌面宠物的硬件架构设计与工程实践

本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。

alice7model的博客 1112

MySQL8.0 MGR介绍

常见的数据库高可用是通过创建计算数据节点冗余来确保数据库的节点宕机不会影响系统的运行,但这会导致数据库的架构复杂,运维成本提升,此外,还需要解决分布式可能所带来的脑裂,数据一致性问题。 MySQL MGR插件基于分布式Paxos算法,协调多个数据库节点进行数据复制,事务一致性检验,故障自动检测选主,节点添加删除,MGR有两种模式,单主模式以及多主模式。

sinat_36757755的博客 4718

SAP LSMW保姆级操作文档

SAP LSMW(Legacy System Migration Workbench)是一个强大的工具,旨在简化旧系统数据向SAP系统的迁移过程。它允许用户通过多种方式导入数据,包括直接输入、批处理输入和BAPI。LSMW支持数据映射和转换,确保数据在迁移过程中保持一致性,减少手动输入的需求,从而提高效率,适用于新系统实施和数据更新项目。在日常运维过程中我们经常会遇到用户要求我们批量改一写数据,通常这些字段的信息有些SAP是提供程序可以批量进行更改的比如主数据的MM17、通用更改数据的MASS。

我小时候很黑的博客 4917

别再折腾老教程了!树莓派4B/5最新系统(Raspberry Pi OS Bookworm)红外遥控配置,用gpio-ir驱动一次成功

本文详细介绍了树莓派4B/5在最新Raspberry Pi OS Bookworm系统下配置红外遥控的完整指南,摒弃过时的lirc-rpi驱动,采用现代gpio-ir驱动方案。从硬件连接到软件配置,提供10分钟快速上手指南,涵盖驱动加载、信号测试、按键映射及高级应用场景,帮助用户高效完成红外遥控配置。

weixin_42520909的博客 442

MySQL自带的元数据库一共有哪些?

想象你有一个大书架,上面有很多不同类型的书籍。为了方便管理这些书籍,你会准备一个笔记本,记录每本书的名字、作者、放在哪一层等信息。MySQL 的元数据库就像这个笔记本,它保存了关于数据库本身的信息,帮助管理和优化数据库的操作。MySQL 自带的元数据库包括mysql和sys,它们分别提供了数据库结构信息、性能监控数据、系统配置和简化性能报告。使用场景涵盖了从查询优化到性能监控再到安全管理等多个方面,帮助管理员和开发人员更好地管理和优化 MySQL 数据库。底层原理涉及信息存储、动态更新和优化查询。

长风破浪会有时的博客 869

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

MySQL元数据库----information_schema

元数据库 information_schema介绍: 它会描述整个MySQL服务器有哪些数据库,每个数据有哪些表,每个表有哪些字段。 元数据库 -> 数据库列表->表列表->字段列表->表内容   information_schema有哪些数据表: 查看数据库名 SCHEMATA表中的 SCHEMA_NAME 字段为所有数据库名。(select sch...

君行路的博客 1772

人工智能混合编程实践:C++调用封装好的DLL进行异常检测推理

C++、Python、ONNX、人工智能、异常检测、Anomalib 2.1.0

FriendshipTang的博客 169

UWB 多传感器通信的纳秒无线位置和时钟同步方法

利用UWB高精度的特点,实现多节点下的无线时钟同步和定位。通过优化硬件架构,减少不确定延迟的影响,系统可以提供纳秒级时钟同步消息

DT程序员的博客 1324

MySQL元数据库 information_schema介绍

环境介绍 数据库 mysql.information_schema 系统 windows 表介绍 SCHEMATA 数据库信息 提供数据库信息,有哪些数据库,字符集是GBK还是UTF-8等等 SELECT * FROM SCHEMATA SCHEMA_NAME 数据库名 DEFAULT_CHARACTER_SET_NAME 默认字符集 DEFAULT_COLLATION_NAME 默认排序规则 TABLES 提供表的信息,数据库有哪些表,是什么存储引擎等等。

夏天的博客 1266

Android 11多窗口+分屏+APP窗口嵌套TaskView实现原理一

然而随着版本的迭代升级,google对分屏的定制差异化也越来越大,Androd 11的分屏用的是split-screen-primary和split-screen-secondary的方式,在systemui中去实现的,其定制化的灵活度不是很高,很多业务都是放到sustemui或者fw去实现,但是随着版本的升高,后面出现了TaskView来替代了老版本的分屏方式,但是Task的核心原理其实和之前的方式是一样的,TaskView来实现分屏。

qq_18420641的博客 2613

Mysql 常见函数、information_schema元数据库、查询、练习

逻辑运算与 and 的优先级高于逻辑运算或 or。查询出 id 在 2 到 4 之间的留言。查询bbs.message 表中所有列名。有分隔符拼接字符串,第一个参数是分隔符。查询出留言id 大于3 的所有留言。参与逻辑运算的操作数是布尔类型的值。查询bbs 数据库中所有表名。and 与运算:有假则假。or 或运算:有真则真。^ 异或运算:异真同假。逻辑运算对真假性的影响。从字符串左侧开始截取字符。查看元数据库中所有表名。从 1 开始而非 0。

weixin_51559599的博客 1066

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MySQL的INFORMATION_SCHEMA数据库我能获取到什么?

大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库。information_schema数据库是做什么用的呢? 在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法...

小白虫的博客 479

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mysql中information_schema数据库

目录 1、information_schema说明 2、information_schema下的表 2.1schemata表 2.2tables表 2.3 columns表 2.4statistics表 2.5、user_privileges表(用户权限表) 2.7 table_privileges表(表权限表) 2.8column_privileges表(列权限表) 2.9character_sets 字符集表 2.10collations表 2.11 ...

weixin_40482816的博客 3083

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

mysql数据库 元数据_mysql information_schema 数据库元数据

select * from information_schema.KEY_COLUMN_USAGE where REFERENCED_TABLE_NAME='asset_lender_loan_dtl' and REFERENCED_COLUMN_NAME='id'information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,...

weixin_36480423的博客 273

MySQL元数据库完全指南:探秘数据背后的数据

在 MySQL 数据库系统中,元数据库扮演着至关重要的角色。它存储了关于数据库对象(如表、列、用户权限等)的定义和描述信息,是理解和管理 MySQL 数据库的关键所在。描述数据库对象(表/列/权限等)的结构化信息核心价值:批量生成DDL语句或数据字典分析索引使用率与锁等待情况监控用户权限变更历史快速统计全实例表结构与容量MySQL 的元数据库是数据库系统的核心组成部分,它存储了丰富的元数据信息,为数据库的管理、权限控制和数据字典功能提供了支持。

cz88888888666的博客 2134

【mysql元数据库】使用information_schema.tables查询数据库和数据表信息

概述对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新、删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件。information_schema.tables存储了数据表的元数据信息,下面对常用的字段进行介绍:table_schema: 记录数据库名;table_name: 记录数据表名;eng...

weixin_33827731的博客 822

MySQL中information_schema数据库是干啥的

大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库。information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章后,你就会对information_schema数据库有所了解。 information_schema数据库是MySQL自带的...

diangaoyi3798的博客 136

MySQL中information_schema 数据库 是干什么的

MySQL中information_schema是什么 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库。 information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章 后,你就会对information_schema数据库有所了解。 ...

ane3232的博客 92

MySQL元数据库知识点

记录mysql自身数据的数据库。

mogexiuluo的博客 794
上一篇: 从零开始学CAS单点登录——实例Demo
下一篇: 从零开始了解MySQL索引
postnull咖啡
博客等级 码龄10年 1026粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值