MySQL中的 information_schema 库

MySQL自带四个数据库,分别是:

  1. information_schema
  2. performance_schema
  3. mysql
  4. test

本文介绍 information_schema 库。

简述

information_schema是MySQL中自带的一个数据库,里边存储着MySQL中所有的数据库信息,包括所有库名、表名、字典以及权限等,也就是存储数据库的元数据(关于数据库的数据),访问该数据库就能得到数据库中所有信息。

其中,在访问时,table_schema / schema_name是数据库的名称,table_name是具体的表名,table_type指的是表的类型

包含表

information_schema库中所有的表如下:

MariaDB [(none)]> use information_schema;
Database changed
MariaDB [information_schema]> show tables;
+---------------------------------------+
| Tables_in_information_schema          |
+---------------------------------------+
| ALL_PLUGINS                           |
| APPLICABLE_ROLES                      |
| CHARACTER_SETS                        |
| CHECK_CONSTRAINTS                     |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS                               |
| COLUMN_PRIVILEGES                     |
| ENABLED_ROLES                         |
| ENGINES                               |
| EVENTS                                |
| FILES                                 |
| GLOBAL_STATUS                         |
| GLOBAL_VARIABLES                      |
| KEY_CACHES                            |
| KEY_COLUMN_USAGE                      |
| OPTIMIZER_TRACE                       |
| PARAMETERS                            |
| PARTITIONS                            |
| PLUGINS                               |
| PROCESSLIST                           |
| PROFILING                             |
| REFERENTIAL_CONSTRAINTS               |
| ROUTINES                              |
| SCHEMATA                              |
| SCHEMA_PRIVILEGES                     |
| SESSION_STATUS                        |
| SESSION_VARIABLES                     |
| STATISTICS                            |
| SYSTEM_VARIABLES                      |
| TABLES                                |
| TABLESPACES                           |
| TABLE_CONSTRAINTS                     |
| TABLE_PRIVILEGES                      |
| TRIGGERS                              |
| USER_PRIVILEGES                       |
| VIEWS                                 |
| GEOMETRY_COLUMNS                      |
| SPATIAL_REF_SYS                       |
| CLIENT_STATISTICS                     |
| INDEX_STATISTICS                      |
| INNODB_SYS_DATAFILES                  |
| USER_STATISTICS                       |
| INNODB_SYS_TABLESTATS                 |
| INNODB_LOCKS                          |
| INNODB_MUTEXES                        |
| INNODB_CMPMEM                         |
| INNODB_CMP_PER_INDEX                  |
| INNODB_CMP                            |
| INNODB_FT_DELETED                     |
| INNODB_CMP_RESET                      |
| INNODB_LOCK_WAITS                     |
| TABLE_STATISTICS                      |
| INNODB_TABLESPACES_ENCRYPTION         |
| INNODB_BUFFER_PAGE_LRU                |
| INNODB_SYS_FIELDS                     |
| INNODB_CMPMEM_RESET                   |
| INNODB_SYS_COLUMNS                    |
| INNODB_FT_INDEX_TABLE                 |
| INNODB_CMP_PER_INDEX_RESET            |
| user_variables                        |
| INNODB_FT_INDEX_CACHE                 |
| INNODB_SYS_FOREIGN_COLS               |
| INNODB_FT_BEING_DELETED               |
| INNODB_BUFFER_POOL_STATS              |
| INNODB_TRX                            |
| INNODB_SYS_FOREIGN                    |
| INNODB_SYS_TABLES                     |
| INNODB_FT_DEFAULT_STOPWORD            |
| INNODB_FT_CONFIG                      |
| INNODB_BUFFER_PAGE                    |
| INNODB_SYS_TABLESPACES                |
| INNODB_METRICS                        |
| INNODB_SYS_INDEXES                    |
| INNODB_SYS_VIRTUAL                    |
| INNODB_TABLESPACES_SCRUBBING          |
| INNODB_SYS_SEMAPHORE_WAITS            |
+---------------------------------------+
77 rows in set (0.001 sec)

MariaDB [information_schema]>

一些常用的表:

  • SCHEMATA:提供了关于数据库的信息。
  • TABLES:给出了关于数据库中的表的信息。
  • COLUMNS:给出了表中的字段信息。
  • STATISTICS:给出了关于表索引的信息。
  • USER_PRIVILEGES(用户权限):给出了关于全程权限的信息。该信息源自mysql.user授权表。
  • SCHEMA_PRIVILEGES(数据库权限):给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。
  • TABLE_PRIVILEGES(表权限):给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。
  • COLUMN_PRIVILEGES(列权限):给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。
  • CHARACTER_SETS(字符集):提供了关于可用字符集的信息。
  • COLLATIONS:提供了关于各字符集的对照信息。
  • COLLATION_CHARACTER_SET_APPLICABILITY:指明了可用于校对的字符集。
  • TABLE_CONSTRAINTS:描述了存在约束的表。
  • KEY_COLUMN_USAGE:描述了具有约束的键列。
  • VIEWS:给出了关于数据库中的视图的信息。
  • TRIGGERS:提供了关于触发程序的信息。

常用表详解

1、SCHEMATA
存储数据库中所有的库名,show databases; 数据取自该表。

例:在information_schema.schemata中查询数据库中所有库

select schema_name from information_schema.schemata;

在这里插入图片描述
2、TABLES
存储所有表信息,show tables ( from XX ); 数据取自该表。

例:查询数据库中所有表

select table_name from information_schema.tables;

在这里插入图片描述
3、COLUMNS
存储所有字段信息,show columns from schemaname.tablename; 数据取自改表。

例:查询数据库中所有字段

select column_name from information_schema.columns;

在这里插入图片描述
4、CHARACTER_SETS
可用字符集,show character set; 数据取自该表。

例:查看字符集

show character set;

在这里插入图片描述

select * from character_sets; 

在这里插入图片描述
5、STATISTICS
索引信息表,SHOW INDEX FROM schemaname.tablename; 数据取自该表。

例:查看dvwa库中users表的索引信息

show index from dvwa.users;

在这里插入图片描述
6、USER_PRIVILEGES
用户权限表,内容源自 mysql.user 授权表。是非标准表。

例: 查看所有用户权限

select * from user_privileges;

在这里插入图片描述
7、SCHEMA_PRIVILEGES
方案权限表,给出了关于方案(数据库)权限的信息。内容来自 mysql.db 授权表。是非标准表。

例:查看所有方案(数据库)的权限

select * from schema_privileges;

在这里插入图片描述
8、TABLE_PRIVILEGES
表权限表,给出了关于表权限的信息。内容源自 mysql.tables_priv 授权表,是非标准表。

例:查看所有表权限

select * from table_privileges;

在这里插入图片描述
9、COLUMN_PRIVILEGES
字段权限表,给出了关于列权限的信息。内容源自 mysql.columns_priv 授权表。是非标准表。

例:查看所有字段权限

select * from column_privileges;

在这里插入图片描述
10、TABLE_CONSTRAINTS
描述存在约束的表,以及表的约束类型。

select * from table_constraints;

在这里插入图片描述

11、KEY_COLUMN_USAGE
描述具有约束的键列(字段)。

select * from key_column_usage;

在这里插入图片描述
12、VIEWS
给出了关于数据库中的视图的信息,需要有 show views 权限,否则无法查看视图信息。
(视图是从一个或多个表/视图中导出来的虚拟表,本身不包含数据。)

select * from views;

在这里插入图片描述
13、TRIGGERS
提供了关于触发程序的信息,必须有 super 权限才能查看该表。
(触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。)

select * from triggers;

在这里插入图片描述
暂时总结到此。

发布了88 篇原创文章 · 获赞 121 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43968080/article/details/104208229