在程序中,若想要动态地得到某一个表的具体信息,就使用到了MySQL 中的 INFORMATION_SCHEMA 信息数据库,而它又包含很多表,见下:
| INFORMATION_SCHEMA SCHEMATA表INFORMATION_SCHEMA TABLES表INFORMATION_SCHEMA COLUMNS表INFORMATION_SCHEMA STATISTICS表INFORMATION_SCHEMA USER_PRIVILEGES表INFORMATION_SCHEMA SCHEMA_PRIVILEGES表INFORMATION_SCHEMA TABLE_PRIVILEGES表INFORMATION_SCHEMA COLUMN_PRIVILEGES表INFORMATION_SCHEMA CHARACTER_SETS表INFORMATION_SCHEMA COLLATIONS表INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表INFORMATION_SCHEMA TABLE_CONSTRAINTS表INFORMATION_SCHEMA KEY_COLUMN_USAGE表INFORMATION_SCHEMA ROUTINES表INFORMATION_SCHEMA VIEWS表INFORMATION_SCHEMA TRIGGERS表 | 
其中的 COLUMNS 表给出了某一个表中的具体的列信息:我们在 ‘test‘ 库中建立 ‘documents‘ 表,语句如下:
| CREATETABLE`documents` (                                         `id` int(11) NOTNULLauto_increment,                            `group_id` int(11) NOTNULL,                                     `group_id2` int(11) NOTNULL,                                    `date_added` datetime NOTNULL,                                  `title` varchar(255) NOTNULL,                                   `content` text NOTNULL,                                         PRIMARYKEY(`id`)                                            ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULTCHARSET=gbk | 
字段以及索引信息为:
| /*字段信息 - test.documents*/-----------------------------Field       Type          Collation       NullKeyDefaultExtra           PrivilegesComment----------  ------------  --------------  ------  ------  -------  --------------  -------------------------------  -------id          int(11)       (NULL)          NOPRI     (NULL)   auto_increment  select,insert,update,referencesgroup_id    int(11)       (NULL)          NOselect,insert,update,referencesgroup_id2   int(11)       (NULL)          NOselect,insert,update,referencesdate_added  datetime      (NULL)          NOselect,insert,update,referencestitle       varchar(255)  gbk_chinese_ci  NOselect,insert,update,referencescontent     text          gbk_chinese_ci  NOselect,insert,update,references/*索引信息 - test.documents*/-----------------------------TableNon_unique  Key_name  Seq_in_index  Column_name  Collation  Cardinality  Sub_part  Packed  NullIndex_type  Comment---------  ----------  --------  ------------  -----------  ---------  -----------  --------  ------  ------  ----------  -------documents           0  PRIMARY1  id           A                    4    (NULL)  (NULL)          BTREE | 
|   | 
好啦!建表结束!先来了解一下 INFORMATION_SCHEMA COLUMNS 表:

下面我们开始了解它!键入 SQL 语句:
| SELECTCOLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT  FROMINFORMATION_SCHEMA.COLUMNS  WHEREtable_name = ‘documents‘ | 
结果如下,可以对照我们刚开始的建表语句以及字段信息:

当然,还可以参照如下格式的 SQL 语句来查看其他字段的查询信息:
| SELECTCOLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT  FROMINFORMATION_SCHEMA.COLUMNS  WHEREtable_name = ‘tbl_name‘  [ANDtable_schema = ‘db_name‘]  [ANDcolumn_name LIKE‘wild‘] | 
接下来看看 SHOW 语句和它的异同:键入 SQL 语句:
| SHOW COLUMNS  FROM`documents` | 
结果如下:

SHOW 语句的基本格式为:
| SHOW COLUMNS  FROMtbl_name  [FROMdb_name]  [LIKEwild] | 
更多详细的内容,请参看 MySQL 手册。
MySQL-INFORMATION_SCHEMA COLUMNS表
原文:http://www.cnblogs.com/milantgh/p/4282231.html