摘要:本文将详细介绍MySQL自带的表,包括各个表的存储数据和字段含义。通过具体的例子和输出结果,帮助读者全面理解MySQL自带表的作用和使用方法。
1. 系统数据库
1.1. mysql数据库
MySQL自带的mysql
数据库是存储用户和权限相关信息的重要数据库。它包含了以下几个关键的表:
1.1.1. 用户表(user)
用户表(mysql.user
)存储MySQL的用户信息,包括用户名、密码等重要信息。以下是一些常用字段的含义:
User
:用户名Host
:允许登录的主机(IP地址或主机名)Password
:加密后的用户密码Select_priv
:是否具有查询权限Insert_priv
:是否具有插入权限Update_priv
:是否具有更新权限- ...
示例:
SELECT * FROM mysql.user;
输出结果:
User | Host |
---|---|
root | localhost |
mysql.infoschema | localhost |
mysql.session | localhost |
mysql.sys | localhost |
1.1.2. 数据库表(db)
数据库表(mysql.db
)存储了MySQL实例中的数据库信息,包括数据库名、数据库所属用户等。以下是一些常用字段的含义:
Host
:允许访问该数据库的主机Db
:数据库名User
:数据库所属用户Select_priv
:是否具有查询权限Insert_priv
:是否具有插入权限Update_priv
:是否具有更新权限- ...
示例:
SELECT * FROM mysql.db;
输出结果:
Host | Db | User | Select_priv |
---|---|---|---|
localhost | testdb | root | Y |
localhost | mysql | N | |
localhost | mydb | user | Y |
1.2. information_schema数据库
information_schema
是MySQL的元数据信息数据库,存储了关于数据库、表格及其字段、用户等的元数据。以下是一些重要的表格:
1.2.1. 数据库表(SCHEMATA)
数据库表(information_schema.SCHEMATA
)存储了MySQL实例中的所有数据库信息,包括数据库名、创建时间等。以下是一些常用字段的含义:
CATALOG_NAME
:数据库名SCHEMA_NAME
:数据库名DEFAULT_CHARACTER_SET_NAME
:默认字符集DEFAULT_COLLATION_NAME
:默认排序规则CREATE_TIME
:创建时间- ...
示例:
SELECT * FROM information_schema.SCHEMATA;
输出结果:
CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME |
---|---|---|
def | information_schema | utf8mb4 |
def | mysql | latin1 |
def | performance_schema | utf8mb4 |
def | sys | utf8mb4 |
def | testdb | utf8mb4 |
def | mydb | utf8mb4 |
2. 存储引擎相关表
2.1. InnoDB存储引擎表
InnoDB是MySQL中一种常用的存储引擎。它还提供了一些非常有用的表格来管理数据库。
2.1.1. 锁信息表(INNODB_LOCKS)
锁信息表(information_schema.INNODB_LOCKS
)存储了当前InnoDB引擎中的锁信息。
示例:
SELECT * FROM information_schema.INNODB_LOCKS;
输出结果:
lock_id | lock_trx_id | lock_mode | lock_type | lock_table | lock_index | lock_space |
---|---|---|---|---|---|---|
12345 | 67890 | S | TABLE | mydb.mytable | PRIMARY | 0 |
23456 | 78901 | X | RECORD | mydb.mytable | 0 |
总结
MySQL自带的表包括在系统数据库中和存储引擎相关的表。mysql
数据库中的用户表(user
)存储用户信息,数据库表(db
)存储数据库信息。information_schema
数据库提供了关于数据库、表格和字段的元数据信息。存储引擎相关表中的锁信息表(INNODB_LOCKS
)用于管理InnoDB存储引擎中的锁信息。熟悉这些表格的作用和字段含义,将有助于更有效地管理和维护MySQL数据库。
希望本文能够帮助读者全面理解MySQL自带表的作用和使用方法。如果您还有其他问题或需要进一步的帮助,请随时提问。