information_schema系统表——COLUMNS

本文介绍了COLUMNS系统表的内容,该表提供了数据库中各表列的详细信息,包括列名、数据类型、默认值等属性,并解释了这些信息如何用于理解和管理数据库结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该系统表包含了所有表的列信息

The COLUMNS table provides information about columns in tables.

INFORMATION_SCHEMA Name SHOW Name Remarks
TABLE_CATALOG   def
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   MySQL extension

Notes:

  • In SHOW, the Type display includes values from several different COLUMNS columns.

  • ORDINAL_POSITION is necessary because you might want to say ORDER BY ORDINAL_POSITION. Unlike SHOWSELECT does not have automatic ordering.

  • CHARACTER_OCTET_LENGTH should be the same as CHARACTER_MAXIMUM_LENGTH, except for multibyte character sets.

  • CHARACTER_SET_NAME can be derived from Collation. For example, if you say SHOW FULL COLUMNS FROM t, and you see in the Collation column a value oflatin1_swedish_ci, the character set is what is before the first underscore: latin1.

  • GENERATION_EXPRESSION is nonempty for generated columns and displays the expression used to compute column values. For information about generated columns, see Section 13.1.18.8, “CREATE TABLE and Generated Columns”.

  • The EXTRA column contains VIRTUAL GENERATED or VIRTUAL STORED for generated columns.




### 关于 `information_schema.tables` 和 `information_schema.columns` #### `information_schema.tables` `information_schema.tables` 提供了有关数据库中各个的详细信息,包括但不限于所属模式、名称、类型以及存储引擎等。通过查询这张可以获取到整个 MySQL 实例下所有库内存在的常规或视图的相关元数据。 例如,要查看特定数据库下的所有格及其基本信息: ```sql SELECT table_name, engine, create_time FROM information_schema.tables WHERE table_schema = 'your_database'; ``` 这会返回指定数据库 (`your_database`) 中所有的名、使用的存储引擎及创建时间[^2]。 #### `information_schema.columns` 相比之下,`information_schema.columns` 则专注于描述各张内部的具体列定义情况——即每一列的数据类型是什么样的,默认值设定为何种形式,是否有设置不允许为空等等特性。这对于理解并操作具体某一张来说非常重要。 为了展示如何利用这个功能来查找某一给定内的全部字段详情,下面给出了一条 SQL 查询语句作为例子: ```sql DESCRIBE information_schema.columns; -- 或者更具体的查询方式如下所示: SELECT column_name, data_type, is_nullable, character_maximum_length FROM information_schema.columns WHERE table_schema='your_database' AND table_name='your_table'; ``` 上述命令能够帮助我们了解到名为 `your_table` 的里有哪些列存在,并且每根柱子都有哪些属性被赋予了特殊的意义[^1]。 #### 使用上的差异 当涉及到对数据库结构进行探索时,通常先从 `information_schema.tables` 开始了解整体布局;而一旦确定目标之后,则转向 `information_schema.columns` 来深入研究单个对象内部更为精细的内容。两张虽然都服务于提供元数据的目的,但是侧重点有所不同:前者偏向宏观层面的整体概览,后者则聚焦微观细节上每一个组成部分的特点[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值