MySQL中information_schema是什么
### MySQL中的information_schema详解 在使用MySQL的过程中,我们经常会遇到一个名为`information_schema`的数据库。这个数据库在MySQL安装时自动生成,并且对于理解和管理MySQL系统具有重要作用。本文将详细介绍`information_schema`的功能、结构以及如何利用它来获取MySQL系统的各种信息。 #### 一、information_schema简介 `information_schema`是一个特殊的只读数据库,用于存储有关MySQL服务器实例上的所有数据库对象的信息。这些信息包括但不限于数据库、表、列、索引等元数据。通过查询`information_schema`,用户可以方便地获取到关于数据库对象的各种属性和状态信息,这对于开发人员和DBA来说非常有用。 #### 二、information_schema的作用 1. **权限管理**:`information_schema`提供了查看用户权限信息的能力,包括全局权限、数据库级别权限、表级别权限以及列级别权限。 2. **数据库对象信息**:可以通过查询`information_schema`来获取数据库、表、视图、触发器等对象的详细信息,例如表结构、字段类型、索引定义等。 3. **性能监控与优化**:`information_schema`还包含了一些性能相关的表,可以帮助管理员监控数据库的运行状况并进行性能调优。 #### 三、information_schema的主要表 `information_schema`包含多个表,每个表都提供了特定的信息或功能。以下是一些常用表及其用途: 1. **SCHEMATA**:提供当前MySQL实例中所有数据库(schema)的信息,如名称、创建时间等。 2. **TABLES**:列出指定数据库中的所有表,并提供每张表的基本信息,如表名、表类型等。 3. **COLUMNS**:提供表中所有列的详细信息,包括列名、数据类型、是否允许为空等。 4. **STATISTICS**:提供表索引的统计信息,如索引名、索引类型、索引长度等。 5. **USER_PRIVILEGES**:显示用户的全局权限信息。 6. **SCHEMA_PRIVILEGES**:显示用户的数据库级别权限信息。 7. **TABLE_PRIVILEGES**:显示用户的表级别权限信息。 8. **COLUMN_PRIVILEGES**:显示用户的列级别权限信息。 9. **CHARACTER_SETS**:提供字符集的相关信息,如字符集名称、默认校对规则等。 10. **COLLATIONS**:提供校对规则的相关信息。 11. **TABLE_CONSTRAINTS**:提供表约束的信息,如外键约束等。 12. **KEY_COLUMN_USAGE**:显示表中作为主键或外键的列的信息。 13. **ROUTINES**:提供存储过程和函数的元数据。 14. **VIEWS**:提供视图的定义信息。 15. **TRIGGERS**:提供触发器的详细信息。 #### 四、查询示例 为了更好地理解`information_schema`如何使用,下面给出几个具体的查询示例: 1. **获取所有数据库列表**: ```sql SELECT schema_name FROM information_schema.schemata; ``` 2. **获取某个数据库下的所有表**: ```sql SELECT table_name FROM information_schema.tables WHERE table_schema = 'your_database'; ``` 3. **获取某张表的所有字段**: ```sql SELECT column_name, data_type, is_nullable FROM information_schema.columns WHERE table_schema = 'your_database' AND table_name = 'your_table'; ``` 4. **获取某张表的所有索引信息**: ```sql SELECT index_name, index_type FROM information_schema.statistics WHERE table_schema = 'your_database' AND table_name = 'your_table'; ``` 5. **查看用户权限**: ```sql SELECT * FROM information_schema.user_privileges WHERE grantee = 'your_username'; ``` #### 五、总结 `information_schema`是MySQL中一个非常有用的工具,它可以帮助用户快速了解整个数据库系统的架构和状态。通过对`information_schema`的深入研究和应用,不仅可以提高数据库管理效率,还能有效提升数据库的安全性和性能。希望本文能够帮助读者更好地掌握这一重要资源的使用方法。




























大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库。 information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章 后,你就会对information_schema数据库有所了解。
information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
information_schema数据库表说明:
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。
TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。
COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。
STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。
USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。
SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。
TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。
COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。
CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。
COLLATIONS表:提供了关于各字符集的对照信息。
COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 大数据时代下计算机网络信息安全问题探讨.docx
- 中国在国际煤炭市场定价格局中的地位与策略-基于贸易网络核心一边缘结构分析.docx
- JEE架构办公自动化系统设计方案与实现.doc
- 卫星通信接收技术知识.doc
- 项目管理中的第三方监控.docx
- 人工智能带来的伦理与社会挑战.docx
- vb学生宿舍管理系统设计方案.doc
- 数据库课程设计参考模版.doc
- 提取二值化指纹图像中特征数据算法研究分析报告.doc
- 大数据检测在公安信息安全中的应用.docx
- 提高路桥施工项目管理水平的措施探讨.docx
- 《不要沉迷于网络游戏》教案.doc
- 大数据时代档案信息化建设措施.docx
- Fortran结构化程序设计.ppt
- 图像处理与影视后期课程教学大纲.docx
- 搭上电子商务快车的传统机械制造企业-河南黎明重工科技股份有限公司发展态势分析与展望.docx


