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的一些信息,不过这个信息是不包括用户自定义的,只是系统的一些信息。
里面包含了很多信息,我们可以看一下列结构,因为实在太多贴不出来了: