MySQL版本大於5.0時,有個默認數據庫information_schema,裏面存放着所有數據庫的信息(比如表名、 列名、對應權限等),通過這個數據庫,我們就可以跨庫查詢,爆表爆列。
1. 獲取所有列信息(COLUMNS)
SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=‘數據庫名’; COLUMNS表:提供了關於表中的列的信息。詳細表述了某個列屬於哪個表。各字段說明如下:
字段 | 含義 |
---|---|
table_schema | 表所有者(對於schema的名稱) |
table_name | 表名 |
column_name | 列名 |
ordinal_position | 列標識號 |
column_default | 列的默認值 |
is_nullable | 列的爲空性。如果列允許 null,那麼該列返回 yes。否則,返回 no |
data_type | 系統提供的數據類型 |
character_maximum_length | 以字符爲單位的最大長度,適於二進制數據、字符數據,或者文本和圖像數據。否則,返回 null。有關更多信息,請參見數據類型 |
character_octet_length | 以字節爲單位的最大長度,適於二進制數據、字符數據,或者文本和圖像數據。否則,返回 nu |
numeric_precision | 近似數字數據、精確數字數據、整型數據或貨幣數據的精度。否則,返回 null |
numeric_precision_radix | 近似數字數據、精確數字數據、整型數據或貨幣數據的精度基數。否則,返回 null |
numeric_scale | 近似數字數據、精確數字數據、整數數據或貨幣數據的小數位數。否則,返回 null |
datetime_precision | datetime 及 sql-92 interval 數據類型的子類型代碼。對於其它數據類型,返回 null |
character_set_catalog | 如果列是字符數據或 text 數據類型,那麼返回 master,指明字符集所在的數據庫。否則,返回 null |
character_set_schema | 如果列是字符數據或 text 數據類型,那麼返回 dbo,指明字符集的所有者名稱。否則,返回 null |
character_set_name | 如果該列是字符數據或 text 數據類型,那麼爲字符集返回唯一的名稱。否則,返回 null |
collation_catalog | 如果列是字符數據或 text 數據類型,那麼返回 master,指明在其中定義排序次序的數據庫。否則此列爲 null |
collation_schema | 返回 dbo,爲字符數據或 text 數據類型指明排序次序的所有者。否則,返回 null |
collation_name | 如果列是字符數據或 text 數據類型,那麼爲排序次序返回唯一的名稱。否則,返回 null。 |
domain_catalog | 如果列是一種用戶定義數據類型,那麼該列是某個數據庫名稱,在該數據庫名中創建了這種用戶定義數據類型。否則,返回 null |
domain_schema | 如果列是一種用戶定義數據類型,那麼該列是這種用戶定義數據類型的創建者。否則,返回 null |
domain_name | 如果列是一種用戶定義數據類型,那麼該列是這種用戶定義數據類型的名稱。否則,返回 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這個三個列都有,所以我們可以直接通過這個表,查出我們需要的所有信息,就省了換表這一步了,進一步提升速度
SELECT
TABLE_SCHEMA AS ‘數據庫’,
TABLE_NAME AS ‘表名’,
column_name AS ‘字段名稱’,
COLUMN_TYPE AS ‘字段類型’,
IS_NULLABLE AS ‘是否爲空’,
COLUMN_DEFAULT AS ‘默認值’,
column_comment AS ‘字段備註’
FROM
information_schema. COLUMNS
WHERE
table_name = ‘yyd_elife_city’
OR table_name = ‘yyd_elife_column_list’
OR table_name = ‘yyd_elife_coupon_list’
OR table_name = ‘yyd_elife_goods_label_list’
OR table_name = ‘yyd_elife_member_extend’
OR table_name = ‘yyd_biz_content_log’
OR table_name = ‘yyd_e_refund’
OR table_name = ‘yyd_e_statistic_goods’
OR table_name = ‘yyd_e_statistic_ip’
OR table_name = ‘yyd_e_statistic_main’
原文:http://blog.sina.com.cn/s/blog_160965eee0102xx3k.html