5. COLUMNS

COLUMNS提供表中列的信息。

INFORMATION_SCHEMA Name SHOW Name Remarks
TABLE_CATALOG

TABLE_SCHEMA

TABLE_NAME

COLUMN_NAME Field
ORDINAL_POSITION
see notes
COLUMN_DEFAULT Default
IS_NULLABLE Null
DATA_TYPE Type
CHARACTER_MAXIMUM_LENGTH Type
CHARACTER_OCTET_LENGTH

NUMERIC_PRECISION Type
NUMERIC_SCALE Type
DATETIME_PRECISION Type
CHARACTER_SET_NAME

COLLATION_NAME Collation
COLUMN_TYPE Type MySQL extension
COLUMN_KEY Key MySQL extension
EXTRA Extra MySQL extension
PRIVILEGES Privileges MySQL extension
COLUMN_COMMENT Comment MySQL extension
GENERATION_EXPRESSION

COLUMNS有以下列:

  • TABLE_CATALOG:包含该列的表所属的目录的名称。 该值始终为def。
  • TABLE_SCHEMA:包含该列的表所属的schema(数据库)的名称。
  • TABLE_NAME:包含该列的表的名称。
  • COLUMN_NAME:列名称
  • ORDINAL_POSITION:表中列的位置。 ORDINAL_POSITION是必要的,因为你可能想说ORDER BY ORDINAL_POSITION。 与SHOW COLUMNS不同,COLUMNS表中的SELECT没有自动排序。
  • COLUMN_DEFAULT:列的默认值。 如果列具有显式缺省值NULL,或者列定义不包含DEFAULT子句,则此值为NULL。
  • IS_NULLABLE:列可空性。 如果NULL值可以存储在列中,则值为YES,否则为NO。
  • DATA_TYPE:列数据类型。DATA_TYPE值只是类型名称,没有其他信息。 COLUMN_TYPE值包含类型名称以及可能的其他信息,例如精度或长度。
  • CHARACTER_MAXIMUM_LENGTH:对于字符串列,最大长度(以字符为单位)
  • CHARACTER_OCTET_LENGTH:对于字符串列,最大长度(以字节为单位)。
  • NUMERIC_PRECISION:对于数字列,数字精度。
  • NUMERIC_SCALE:对于数字列,数字刻度。
  • DATETIME_PRECISION:对于时间列,小数秒精度。
  • CHARACTER_SET_NAME:对于字符串列,字符集名称。
  • COLLATION_NAME:对于字符串列,排序规则名称。
  • COLUMN_TYPE:列数据类型。该DATA_TYPE值只是类型名称,没有其他信息。该COLUMN_TYPE 值包含类型名称以及可能的其他信息,例如精度或长度。
  • COLUMN_KEY:列是否已编入索引:

    • 如果COLUMN_KEY为空,则列不会被索引,也不会仅作为多列非唯一索引中的辅助列索引。
    • 如果COLUMN_KEY是PRI,则该列是PRIMARY KEY或者是多列PRIMARY KEY中的列之一。
    • 如果COLUMN_KEY是UNI,则该列是UNIQUE索引的第一列。 (UNIQUE索引允许多个NULL值,但您可以通过检查Null列来判断该列是否允许NULL。)
    • 如果COLUMN_KEY是MUL,则该列是非唯一索引的第一列,其中在列中允许多次出现给定值。

    如果多个COLUMN_KEY值应用于表的给定列,则COLUMN_KEY按PRI,UNI,MUL的顺序显示具有最高优先级的值。

    如果UNIQUE索引不包含NULL值并且表中没有PRIMARY KEY,则它可以显示为PRI。 如果多个列形成复合UNIQUE索引,则UNIQUE索引可以显示为MUL; 虽然列的组合是唯一的,但每列还是会有重复值出现。

  • EXTRA:关于指定列的任何其他可用信息。 在这些情况下,该值是非空的:

    • auto_increment用于具有AUTO_INCREMENT属性的列。
    • 更新CURRENT_TIMESTAMP用于具有ON UPDATE CURRENT_TIMESTAMP属性的TIMESTAMP或DATETIME列。
    • 生成的列的VIRTUAL GENERATED或VIRTUAL STORED。
  • PRIVILEGES:您对该列的权限。

  • COLUMN_COMMENT:列定义中包含的任何注释。
  • GENERATION_EXPRESSION:对于生成的列,显示用于计算列值的表达式。 为非生成列清空。 有关生成的列的信息,请参见“创建表和生成的列”。
CREATE TABLE triangle (
sidea DOUBLE,
sideb DOUBLE,
sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))
);
INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,8); mysql> SELECT * FROM triangle;
+-------+-------+--------------------+
| sidea | sideb | sidec |
+-------+-------+--------------------+
| 1 | 1 | 1.4142135623730951 |
| 3 | 4 | 5 |
| 6 | 8 | 10 |
+-------+-------+--------------------+

注意

  • 在SHOW COLUMNS中,Type显示包含来自多个不同COLUMNS列的值。

  • 除多字节字符集外,CHARACTER_OCTET_LENGTH应与CHARACTER_MAXIMUM_LENGTH相同。

  • CHARACTER_SET_NAME可以来自COLLATION_NAME。 例如,如果您说显示来自t的全部列,并且您在COLLATION_NAME列中看到latin1_swedish_ci的值,则字符集就在第一个下划线之前:latin1。

示例

mysql>  select COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT from information_schema.columns where table_schema='test' and table_name = 'account';
+-------------+-----------+-------------+----------------+
| COLUMN_NAME | DATA_TYPE | IS_NULLABLE | COLUMN_DEFAULT |
+-------------+-----------+-------------+----------------+
| id | int | YES | NULL |
| name | char | YES | NULL |
| balance | int | YES | NULL |
+-------------+-----------+-------------+----------------+
3 rows in set (0.01 sec) mysql> show columns from test.account;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| id | int(11) | YES | MUL | NULL | |
| name | char(30) | YES | | NULL | |
| balance | int(11) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+

【注意】

INFORMATION_SCHEMA.COLUMNS不包含有关临时表的信息。要获取临时表列信息,必须使用SHOW COLUMNS。您还可以使用SHOW CREATE TABLE或MySQL 5.7.1,INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO。

5. COLUMNS的更多相关文章

  1. JQuery Datatables Columns API 参数详细说明

    ---恢复内容开始--- Data Tables: http://datatables.NET/ Version: 1.10.0 Columns说明 虽然我们可以通过DOM直接获取DataTables ...

  2. Easyui columns列图片移位问题!!!

    InitGrid: function () { $("#list").datagrid({ toolbar: '#tb', url: BanZhengXiaoLuSearch.Aj ...

  3. MySQL COLUMNS分区

    200 ? "200px" : this.width)!important;} --> 介绍 COLUMN分区是5.5开始引入的分区功能,只有RANGE COLUMN和LIS ...

  4. SharePoint Calculated Columns 分类: Sharepoint 2015-07-09 01:49 8人阅读 评论(0) 收藏

    SharePoint Calculated Columns are powerful tools when creating out-of-the-box solutions. With these ...

  5. easyui datagrid 动态添加columns属性

    公司在项目设计的时候,有一个需求,就是查出来的表的字段不唯一,一张表的字段可能是三个,也可能是五个,但是却要把它显示到页面,这个给我做ui的带来一点麻烦.因为以前一般用easyui 的datagrid ...

  6. SharePoint 2013 Content Deployment 报错 These columns don't currently have unique values

    错误描述: These columns don't currently have unique values. Content deployment job 'job name' failed.The ...

  7. [转]how to split the ng-repeat data with three columns using bootstrap

    本文转自:http://stackoverflow.com/questions/21644493/how-to-split-the-ng-repeat-data-with-three-columns- ...

  8. return columns.All(new Func<string, bool>(list.Contains));

    internal static bool VerifyColumns(SqlConnection conn, string table, params string[] columns)        ...

  9. db2 Hidden columns

    When a table column is defined with the implicitly hidden attribute, that column is unavailable unle ...

  10. DB2 Add hidden Identity columns

    An identity column contains a unique numeric value for each row in the table. DB2® can automatically ...

随机推荐

  1. POJ2718【DFS】

    题意: 给你0到9之间的数,然后让你搞成两个数,求一个最小差异值(被组合的数不允许出现前导0) 思路:最小差异那么肯定是有一个整数长n/2,另一个长n-n/2,搜一下就好了. code: #inclu ...

  2. LuoguP1268树的重量【构造/思维】By cellur925

    题目传送门 Description 给你一个矩阵$M$,$M(i,j)$表示$i$到$j$的最短距离.定义树的重量为树上各边权之和,对于任意给出的合法矩阵$M$,已知它所能表示树的重量是唯一确定的.给 ...

  3. (一)搭建自己的SpringBoot后台框架整合MyBatis

    一:通过idea工具构建基础框架 1.  打开idea,左上角File→New→Project, 2.  点击Next 3.  点击Next,配置如下图,这里我们选择数据库MySQL和持久层框架MyB ...

  4. 最短路之Floyd(弗洛伊德)

    只有五行的Floyd最短路算法: 核心代码 每次都更新通过k点,然后从i到j的最短路程...

  5. iOS 将WKWebView内的HTML打印为PDF

    使用的webview为WKWebView,核心部分代码(Swift 4): // 创建打印渲染 let printPageRenderer:PDFRender = PDFRender() // 获取渲 ...

  6. C++ 的浅拷贝和深拷贝(结构体)

    关于浅拷贝和深拷贝这个问题遇上的次数不多,这次遇上整理一下,先说这样一个问题,关于浅拷贝的问题,先从最简单的说起. 假设存在一个结构体: struct Student { string name; i ...

  7. HDU - 6063 RXD and math

    Bryce1010模板 http://acm.hdu.edu.cn/showproblem.php?pid=6063 打表发现规律是n^k #include <iostream> #inc ...

  8. 线段树(成段更新) POJ 3468 A Simple Problem with Integers

    题目传送门 /* 线段树-成段更新:裸题,成段增减,区间求和 注意:开long long:) */ #include <cstdio> #include <iostream> ...

  9. magento优化之模板静态化

    最近首页很慢,运行magento profile检查的时候,发现首页某个templat运行时间占了一半,大概6s. 用magento自带的缓存,尝试把代码中的collection缓存起来,但不知道为啥 ...

  10. C. Quiz 贪心 + 数学

    http://codeforces.com/problemset/problem/337/C 题意是给出n个题目,那个人答对了m道,然后如果连续答对了k道,就会把分数double 求最小的分数是什么. ...