当前位置:Gxlcms > 数据库问题 > MySQL--INFORMATION_SCHEMA COLUMNS表

MySQL--INFORMATION_SCHEMA COLUMNS表

时间:2021-07-01 10:21:17 帮助过:2人阅读

在程序中,若想要动态地得到某一个表的具体信息,就使用到了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 手册。

MySQL--INFORMATION_SCHEMA COLUMNS表

标签:

人气教程排行