【TIDB】TIDB数据类型详解

TIDB的数据类型

1 数值类型

1 整数类型
在这里插入图片描述
2 浮点类型
在这里插入图片描述
3 定点类型
decamal(20,6)

2 日期和时间类型

在这里插入图片描述

3 字符串类型

1 CHAR 类型
定长字符串。CHAR 列的长度固定为创建表时声明的长度。当保存 CHAR 值时,不足固定长度的字符串在后面填充空格,以达到指定的长度。M 表示列长度(字符的个数,不是字节的个数)。长度可以为从 0 到 255 的任何值。
VARCHAR 类型
变长字符串。M 表示最大列长度(字符的最大个数)。VARCHAR 的空间占用大小不得超过 65535 字节。在选择 VARCHAR 长度时,应当根据最长的行的大小和使用的字符集确定。
对于不同的字符集,单个字符所占用的空间可能有所不同。以下表格是各个字符集下单个字符占用的字节数,以及 VARCHAR 列长度的取值范围:
在这里插入图片描述
2 TEXT类型
文本串。M 表示最大列长度(字符的最大个数),范围是 0 到 65535。在选择 TEXT 长度时,应当根据最长的行的大小和使用的字符集确定。
TINYTEXT 类型
类似于 TEXT,区别在于最大列长度为 255。
MEDIUMTEXT 类型
类似于 TEXT,区别在于最大列长度为 16,777,215。
LONGTEXT 类型
类似于 TEXT,区别在于最大列长度为 4,294,967,295。
BINARY 类型
类似于 CHAR,区别在于 BINARY 存储的是二进制字符串。
VARBINARY 类型
类似于 VARCHAR,区别在于 VARBINARY 存储的是二进制字符串。
BLOB 类型
二进制大文件。M 表示最大列长度,单位是字节,范围是 0 到 65535。
TINYBLOB 类型
类似于 BLOB,区别在于最大列长度为 255。
MEDIUMBLOB 类型
类似于 BLOB,区别在于最大列长度为 16777215。
LONGBLOB 类型
类似于 BLOB,区别在于最大列长度为 4,294,967,295。
ENUM 类型
枚举类型是一个字符串,它只能有一个值的字符串对象。其值必须是从一个固定集合中选取,这个固定集合在创建表的时候定义,语法是:

ENUM('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]

3 SET 类型

集合类型是一个包含零个或多个值的字符串,其中每个值必须是从一个固定集合中选取,这个固定集合在创建表的时候定义,语法是:

SET('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]

4 JSON类型

警告:
当前该功能为实验特性,不建议在生产环境中使用。
JSON 类型可以存储 JSON 这种半结构化的数据,相比于直接将 JSON 存储为字符串,它的好处在于:
使用 Binary 格式进行序列化,对 JSON 的内部字段的查询、解析加快;
多了 JSON 合法性验证的步骤,只有合法的 JSON 文档才可以放入这个字段中;
JSON 字段本身上,并不能创建索引。相反,可以对 JSON 文档中的某个子字段创建索引。例如:

CREATE TABLE city (
    id INT PRIMARY KEY,    
    detail JSON,
    population INT AS (JSON_EXTRACT(detail, '$.population')
    ),    
    index index_name (population)
);
INSERT INTO city (id,detail) VALUES (
    1, '{"name": "Beijing", "population": 100}'
);
SELECT id FROM city WHERE population >= 100;
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧码文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值