大家在安装或使用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的前两个显示字段。

TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。

KEY_COLUMN_USAGE表:描述了具有约束的键列。

ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。

VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。

TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表。

以上是转载内容

原创内容请往下看↓

一些关于INFORMATION_SCHEMA的使用技巧

1.类似MS SQL SERVER中的SP_HELPTEXT查看存储过程、函数、视图的功能:

SHOW CREATE PROCEDURE 存储过程名;
SHOW CREATE FUNCTION 函数名;
SHOW CREATE VIEW 视图名;

还可以使用以下办法(但下面的办法只包含存储过程主体部分,不包含Create以及传入参数申明的部分):

SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA='数据库名' AND ROUTINE_TYPE='PROCEDURE' and ROUTINE_NAME='存储过程名';

函数也类似,只需要将查询条件对应改成ROUTINE_TYPE='FUNCTION'就行

2.查看当前实例包含的数据库列表:

SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;

3.查询数据库中所有的表(包含视图):

SELECT * FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA='数据库名' and TABLE_TYPE='BASE TABLE';

SELECT * FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA='数据库名' and TABLE_TYPE='VIEW';

4.查询数据库中所有的视图:

SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA='数据库名';

5.查询表对应的字段:

a.

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema='数据库名' and table_name='表名';

b.横向列出表对应的字段,方便写Insert语句:

select GROUP_CONCAT(COLUMN_name) as '字段' from INFORMATION_SCHEMA.COLUMNS WHERE table_schema='数据库名' and table_name='表名';

7.查询关键字在哪些存储过程或者函数中存在:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA='数据库名' AND ROUTINE_TYPE='PROCEDURE' AND ROUTINE_DEFINITION like '%关键字%';

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA='数据库名' AND ROUTINE_TYPE='FUNCTION' AND ROUTINE_DEFINITION like '%关键字%';

MySQL的INFORMATION_SCHEMA数据库简介的更多相关文章

  1. MySQL中information_schema数据库的内容

    大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库. information_schema数据库是做什么用的呢,使用WordPress博客 ...

  2. MySQL中information_schema数据库是干啥的

    大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库.information_schema数据库是做什么用的呢,使用WordPress博客 ...

  3. MySQL中information_schema 数据库 是干什么的

    MySQL中information_schema是什么 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库. information_sc ...

  4. mysql information_schema 数据库简介:

    .CHARACTER_SETS 表 CREATE TEMPORARY TABLE `CHARACTER_SETS` ( `CHARACTER_SET_NAME` varchar() NOT NULL ...

  5. MySQL学习之一数据库简介

    1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,长期储存在计算机内.有组织的.可共享的数据集合. 数据库中的数据指的是以一定的数据模型组织.描述和储存在一起. ...

  6. MYSQL的information_schema数据库中你可以得到的信息!!!

    1.COLUMNS 记录了所有表字段的一些基本信息,例如权限信息等. 2:TABLES :使用该表可以查询每一个表的详细信息,例如数据占用空间大小.索引大小以及表的更新时间以及表的行数等 3:视图 可 ...

  7. MySQL自带information_schema数据库使用

    MySQL的information_schema数据库是什么,有什么作用? 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库.info ...

  8. 查看mysql表和数据库的大小

    转自:http://xiaosu.blog.51cto.com/2914416/687835 1.查看数据库的大小 use 数据库名SELECT sum(DATA_LENGTH)+sum(INDEX_ ...

  9. MySQL中的information_schema数据库详解

    information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.有些时候用于表述该信 ...

随机推荐

  1. 二分法:CF371C-Hamburgers(二分法+字符串的处理)

    Hamburgers Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u    Desc ...

  2. [GDOI2016][树链剖分+主席树]疯狂动物城

    题面 Description Nick 是只在动物城以坑蒙拐骗为生的狐狸,儿时受到偏见的伤害,放弃了自己的理想.他被兔子 Judy 设下圈套,被迫与她合作查案,而卷入意想不到的阴谋,历尽艰险后成为搭档 ...

  3. Python 信号处理 signal 模块

    Table of Contents 1. signal模块简介 1.1. signal简单示例 1.2. signal说明 1.2.1. 基本的信号名 1.2.2. 常用信号处理函数 2. signa ...

  4. 非负矩阵分解(NMF)原理及算法实现

    一.矩阵分解回想 矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积.对于上述的用户-商品(评分矩阵),记为能够将其分解为两个或者多个矩阵的乘积,如果分解成两个矩阵和 .我们要使得矩阵和 的乘积能够还 ...

  5. easyui-combogrid匹配查询

    用到easyui-combogrid,数据比较少的情况,可以一页就显示完毕,然后直接下拉选择.但是对于数据量比较大的情况,一页显示全部显然不合适,好在从easyui-combogrid的数据加载方式可 ...

  6. C#操作XML配置文件

    代码为C#操作xml配置文件的范例类,函数SetValue用于向配置文件写入一个值,GetValue用于根据Key获取相应值。这种方法的配置文件不需要手动创建,程序在运行后会自动处理创建。 注意:1. ...

  7. 【Two Sum】cpp

    题目: Given an array of integers, find two numbers such that they add up to a specific target number. ...

  8. log4j2异步日志配置及官方文档的问题澄清

    配置及demo 方法一全部打开 加启动参数 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextS ...

  9. JVM虚拟机系列(三)Class文件格式

  10. jira从windows迁移到linux

    说明:迁移的就是 jira安装路径/atlassian/jira/atlassian-jira/WEB-INF/classes/jira-application.properties文件中的jira_ ...