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 手册。
SELECT COLUMN_NAME AS '字段名',COLUMN_COMMENT AS '字段注释',DATA_TYPE AS '字段类型' FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA='database_name' AND TABLE_NAME='table_name' AND COLUMN_COMMENT !='' AND COLUMN_COMMENT != '未使用'
这样就解决了大量字段值的查询问题。
MySQL--INFORMATION_SCHEMA COLUMNS表的更多相关文章
- information_schema.columns 学习
每一个表中的每一列都会在information_schema.columns表中对应一行 1.informaiton_schema.columns 常用列: 1.table_catalog :不管是t ...
- MySQL中的information_schema数据库表说明
MySQL 中的 information_schema 数据库 版权声明:https://blog.csdn.net/kikajack/article/details/80065753 1. 概述 ...
- 使用INFORMATION_SCHEMA.Columns查询数据表结构
使用情形1:写数据字典(Word文档)时, 需要获取表结构,以加快书写速度,当然,前提是没有文档导出工具. 使用情形2:生成实体时, 前提也是没有代码生成工具. 脚本 SELECT A.COLUMN_ ...
- MySQL源码 information_schema新增表
information_schema是MySQL下的DB, 存储了数据库的数据字典,但OS系统上,并没有information_schema下表的数据和结构文件. 所以,MySQL在针对informa ...
- mysql中information_schema.columns字段说明
1. 获取所有列信息(COLUMNS) SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='数据库名'; COLUMNS表 ...
- [MySQL] INFORMATION_SCHEMA 数据库包含所有表的字段
sql注入后可以通过该数据库获取所有表的字段信息 1. COLLATIONS表 提供有关每个字符集的排序规则的信息. COLLATIONS表包含以下列: COLLATION_NAME 排序规则名称. ...
- MySQL 对比数据库表结构
200 ? "200px" : this.width)!important;} --> 介绍 本章主要介绍怎样对比数据库的表结构的差异,这里主要介绍使用mysqldiff工具 ...
- sql:MySQL 6.7 表,视图,存储过程结构查询
#数据库MySQL 6.7 use sakila; #查询表名 show tables; # SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA. ...
- MySQL快速生产表的描述
# mysql快速生成表的描述 SELECT column_name AS `列名`, CONCAT_WS(' (', data_type, character_maximum_length) AS ...
随机推荐
- Salt自动化之自动更新Gitfs-爱折腾技术网
Salt自动化之自动更新Gitfs-爱折腾技术网 pygit2
- Java多线程编程之同步器
同步器 为每种特定的同步问题提供了解决方案 Semaphore Semaphore[信号标:旗语],通过计数器控制对共享资源的访问. 测试类: package concurrent; import c ...
- vector 的resize与reserve
最近遇到一个坑,简单说来是resize与reserve的功能混淆了. 如下: 如果调用resize的化,编译会出错,如果给Text提供默认构造函数,则可以编译通过,最终输出的结果为10. 如果调用re ...
- UVALive 7281 Saint John Festival (凸包+O(logn)判断点在凸多边形内)
Saint John Festival 题目链接: http://acm.hust.edu.cn/vjudge/contest/127406#problem/J Description Porto's ...
- TypeScript 素描 - 模块
/* 其实前面一些都是废话,因为都和C#类似.从模块开始就需要深入的去理解了 文档反复声明了 内部模块现在称做 命令空间 外部模块称为 模块 模块在其自身的作用域里执行,而不是在全局作用域里,也就是说 ...
- wikioi 1154 能量项链
题目描述 Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子 ...
- wikioi 1214 线段覆盖
题目描述 Description 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,--N.这些坐标都是区间(-999,999)的整数.有些线段 ...
- C#中Action和Func的使用
在日常使用delegate时,我们通常需要显示声明一个名为XXX的委托,而在使用Action委托时,不必显示定义一个封装无参数过程的委托. 比如正常使用delegate: using System; ...
- 一个无聊的实验:验证网站是否通过web容器还是微服务部署
一般来说一台web服务器会部署多个实例(且共享80端口),举个栗子例如nginx通常部署多个站点,每个站点都有自己的端口 例如 8091,8092之类的. 通过nginx进行代理.(前提微服务直接使用 ...
- 从零开始学android开发-通过WebService进行网络编程,使用工具类轻松实现
相信大家在平常的开发中,对网络的操作用到HTTP协议比较多,通过我们使用Get或者Post的方法调用一个数据接口,然后服务器给我们返回JSON格式的数据,我们解析JSON数据然后展现给用户,相信很多人 ...