• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SHOW COLUMNS语句

    SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS}
        {FROM | IN} tbl_name
        [{FROM | IN} db_name]
        [LIKE 'pattern' | WHERE expr]
    

    SHOW COLUMNS显示有关给定表中列的信息。它也适用于视图。SHOW COLUMNS仅显示您具有特权的那些列的信息。

    mysql> SHOW COLUMNS FROM City;
    +-------------	+----------	+------	+-----	+---------	+----------------	+
    | Field       	| Type     	| Null 	| Key 	| Default 	| Extra          	|
    +-------------	+----------	+------	+-----	+---------	+----------------	+
    | ID          	| int(11)  	| NO   	| PRI 	| NULL    	| auto_increment 	|
    | Name        	| char(35) 	| NO   	|     	|         	|                	|
    | CountryCode 	| char(3)  	| NO   	| MUL 	|         	|                	|
    | District    	| char(20) 	| NO   	|     	|         	|                	|
    | Population  	| int(11)  	| NO   	|     	| 0       	|                	|
    +-------------	+----------	+------	+-----	+---------	+----------------	+
    

    语法的替代方法是。这两个语句是等效的:tbl_name FROM db_namedb_name.tbl_name

    SHOW COLUMNS FROM mytable FROM mydb;
    SHOW COLUMNS FROM mydb.mytable;
    

    可选EXTENDED关键字使输出包含有关MySQL内部使用的隐藏列的信息,用户无法访问这些隐藏列。

    可选FULL关键字使输出包含列排序规则和注释,以及每列的特权。

    LIKE子句(如果存在)指示要匹配的列名称。的WHERE条款可以给出使用更一般的条件来选择行,如在讨论第25.48,“扩展到SHOW语句”。

    数据类型可能与您期望基于CREATE TABLE语句的数据类型有所不同,因为在创建或更改表时,MySQL有时会更改数据类型。“静默色谱柱规格变更”中描述了发生这种情况的条件。

    SHOW COLUMNS为每个表列显示以下值:

    • Field

      列的名称。

    • Type

      列数据类型。

    • Collation

      非二进制字符串列或NULL其他列的排序规则。仅当您使用FULL关键字时,才显示此值。

    • Null

      列的可空性。值是YES是否NULL可以将值存储在列中(NO如果不能)。

    • Key

      列是否被索引:

      • 如果Key为空,则该列要么不被索引,要么仅被索引为多列非唯一索引中的第二列。
      • 如果Key为is PRIPRIMARY KEY则列为a 或为多列中的列之一PRIMARY KEY
      • 如果KeyUNI,则该列为UNIQUE索引的第一列。(UNIQUE索引允许使用多个NULL值,但是您可以NULL通过检查Null字段来判断该列是否允许使用。)
      • 如果Key为is MUL,则该列是非唯一索引的第一列,在该列中允许多次出现给定值。

      如果超过一个Key值适用于表中给定的列,Key显示一个具有最高优先级,顺序PRIUNIMUL

      UNIQUE索引可被显示为PRI,如果它不能包含NULL值并没有PRIMARY KEY在表中。甲UNIQUE索引可能会显示为MUL如果若干列形成复合UNIQUE索引;尽管各列的组合是唯一的,但各列仍可以容纳多次出现的给定值。

    • Default

      列的默认值。这是NULL如果列有一个明确的默认NULL,或者如果列定义不包括DEFAULT条款。

    • Extra

      有关给定列的任何其他可用信息。在以下情况下,该值是非空的:

      • auto_increment具有AUTO_INCREMENT属性的列。
      • on update CURRENT_TIMESTAMP对于TIMESTAMPDATETIME有列ON UPDATE CURRENT_TIMESTAMP属性。
      • VIRTUAL GENERATEDVIRTUAL STORED用于生成的列。
      • DEFAULT_GENERATED对于具有表达式默认值的列。
    • Privileges

      您具有该列的特权。仅当您使用FULL关键字时,才显示此值。

    • Comment

      列定义中包含的任何注释。仅当您使用FULL关键字时,才显示此值。

    表列信息也可从INFORMATION_SCHEMACOLUMNS表中获得。请参见“ INFORMATION_SCHEMA列表”。有关隐藏列的扩展信息仅可使用SHOW EXTENDED COLUMNS;它不能从COLUMNS表中获得。

    您可以使用mysqlshow db_nametbl_name命令列出表的列。

    DESCRIBE语句提供的信息类似于SHOW COLUMNS。请参见“ DESCRIBE语句”。

    SHOW CREATE TABLESHOW TABLE STATUSSHOW INDEX语句也可以提供有关表的信息。请参见“ SHOW语句”。