元数据就是描述数据的数据,在很多时候我们都需要查询元数据
比如:想知道数据库有多少个表,表里面有哪些字段,数据表是什么时候创建的、在什么时候更新过等等
使用SQL注入的时候也得获取数据库的元数据才能进一步得到数据
使用show获取元数据
- show status 获取数据库的状态
- show tables 获取数据库中的所有表
- show databases 获取MySQL中的所有数据库
- show create database [数据库名] 获取数据库的定义
- show create table [数据表名] 获取数据表的定义
- show columns from [数据表名] 获取数据表的各个列的定义
从INFORMATION_SCHEMA表中获取元数据
我们在mysql命令行中使用 show databases 可以看到一个叫 information_schema 的数据库,它就是用来存储元数据的
里面有很多个表,如果要获取数据表的定义一般在TABLES表中,这里看一下它的各个列
TABLE_SCHEMA指的是每个表对应的数据库名,由图可见,information_schema 的TABLES可以获取数据库中各个表的基本信息
除了TABLES表之后还有其他的表,能获取数据库中的其他的比如触发器、存储过程等等的定义。