information_schema系列五(表,触发器,视图,存储过程和函数)

Posted M哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了information_schema系列五(表,触发器,视图,存储过程和函数)相关的知识,希望对你有一定的参考价值。

这个系列的文章主要是为了能够让自己了解mysql5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益。
1:TABLES
TABLES这张表毫无疑问了,就是记录的数据库中表的信息,其中包括系统数据库和用户创建的数据库。而TABLESPACES 却是标注的活跃表空间。
看一下TABLES 的记录关于TEST1表:
 
其实我们通过show table status like \'test1\'\\G;可以看到相同的信息。
 
TABLE_TYPE这列有两种类型,分别是BASE TABLE和VIEW两种,TABLE_ROWS就是指明表的行数是多少。如果十一INFORMATION_SCHEMA的表的话,这个值就是NULL。
DATA_FREE这个列指明的是表的可用空间是多少。
我们可以通过以下方式进行查询:
SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = \'db_name\' AND table_name LIKE \'tablename\'
查看某个表的详细信息.这点要注意分区表和普通表的显示会有所不同,所以说如果是分区表的话可以稍微留意一下。
2:TRIGGERS
首先看一下记录:
 
这个表记录的就是触发器的信息,包括所有的相关的信息。系统的和自己用户创建的触发器。
我们也可以通过以下的信息查看一个系统的触发器信息。
SHOW create TRIGGER sys_config_insert_set_user\\G;
具体列的信息就不再说了,看着就很明白。贴一下show create trigger的信息
 
我们可以通过以下信息进行查询
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA=\'test\' AND TRIGGER_NAME=\'name\'\\G
3: VIEWS
老规矩查看一下信息
 
这个存放的是视图的信息,也是系统的和用户的基本视图信息。
我们其实需要查看的就是这个视图的创建语句。通过一下语句就能够查询
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = \'test\' AND TABLE_NAME = \'v\';
4:ROUTINES
这个视图存放的也是一些基本信息,是关于存储过程和方法function的一些信息,不过这个信息是不包括用户自定义的,只是系统的一些信息。
里面包含了很多信息,我们可以看一下列结构,因为实在太多贴不出来了:
 
 
 
PS:最近几天事情太多,写的东西没啥技术含量,都是一些自己测试测试看看。其实看官网的话来的更快一点。建议大家直接看官网资料。
 

以上是关于information_schema系列五(表,触发器,视图,存储过程和函数)的主要内容,如果未能解决你的问题,请参考以下文章

information_schema系列六(索引,表空间,权限,约束相关表)

information_schema系列六(索引,表空间,权限,约束相关表)

information_schema系列二(列,列权限,事件,存储引擎)

information_schema系列八(锁,事物)

information_schema系列二(列,列权限,事件,存储引擎)

information_schema系列七