MySQL-INFORMATION_SCHEMA COLUMNS表

在程序中,若想要动态地得到某一个表的具体信息,就使用到了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' 表,语句如下:

CREATE TABLE `documents` (                           
              `id` int (11) NOT NULL auto_increment,              
              `group_id` int (11) NOT NULL ,                       
              `group_id2` int (11) NOT NULL ,                      
              `date_added` datetime NOT NULL ,                    
              `title` varchar (255) NOT NULL ,                     
              `content` text NOT NULL ,                           
              PRIMARY KEY  (`id`)                                
            ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=gbk

字段以及索引信息为:

/*字段信息 - test.documents*/
-----------------------------
 
Field       Type          Collation       Null    Key     Default  Extra           Privileges                       Comment
----------  ------------  --------------  ------  ------  -------  --------------  -------------------------------  -------
id          int (11)       ( NULL )          NO      PRI     ( NULL )   auto_increment  select , insert , update , references        
group_id    int (11)       ( NULL )          NO                                       select , insert , update , references        
group_id2   int (11)       ( NULL )          NO                                       select , insert , update , references        
date_added  datetime      ( NULL )          NO                                       select , insert , update , references        
title       varchar (255)  gbk_chinese_ci  NO                                       select , insert , update , references        
content     text          gbk_chinese_ci  NO                                       select , insert , update , references        
 
/*索引信息 - test.documents*/
-----------------------------
 
Table      Non_unique  Key_name  Seq_in_index  Column_name  Collation  Cardinality  Sub_part  Packed  Null    Index_type  Comment
---------  ----------  --------  ------------  -----------  ---------  -----------  --------  ------  ------  ----------  -------
documents           0  PRIMARY              1  id           A                    4    ( NULL )  ( NULL )          BTREE
  

好啦!建表结束!先来了解一下 INFORMATION_SCHEMA COLUMNS 表:

下面我们开始了解它!键入 SQL 语句:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
   FROM INFORMATION_SCHEMA.COLUMNS
   WHERE table_name = 'documents'

结果如下,可以对照我们刚开始的建表语句以及字段信息:

当然,还可以参照如下格式的 SQL 语句来查看其他字段的查询信息:

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
   FROM INFORMATION_SCHEMA.COLUMNS
   WHERE table_name = 'tbl_name'
   [ AND table_schema = 'db_name' ]
   [ AND column_name LIKE 'wild' ]

接下来看看 SHOW 语句和它的异同:键入 SQL 语句:

SHOW COLUMNS
   FROM `documents`

结果如下:

SHOW 语句的基本格式为:

SHOW COLUMNS
   FROM tbl_name
   [ FROM db_name]
   [ LIKE wild]

更多详细的内容,请参看 MySQL 手册。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值