【TIDB】TIDB数据类型详解

news/2024/5/19 12:52:04 标签: tidb, java, 数据库

TIDB的数据类型

文章目录

    • TIDB的数据类型
      • 1 数值类型
      • 2 日期和时间类型
      • 3 字符串类型
      • 3 SET 类型
      • 4 JSON类型

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;

http://www.niftyadmin.cn/n/217093.html

相关文章

【hello Linux】Linux软件管理器yum

目录 1.Linux软件管理器yum 1.1 关于lrzsz 1.2 使用yum时的注意事项 1.3 查看软件包:yum list 1.4 安装软件:yum install 1.5 卸载软件:yum remove 1.6 更新yum源 1.7 实战项目 Linux🌷 1.Linux软件管理器yum 在windows系统下有应…

《绝对坦率》速读笔记

文章目录书籍信息概览(第一部分 一种新的管理哲学)建立坦率的关系给予并鼓励指导了解团队中每个人的动机协同创造成果(第二部分 工具和技巧)关系指导团队结果书籍信息 书名:《绝对坦率:一种新的管理哲学》…

一口气 Ping 1000 个 IP 地址,会发生什么事情?

ping命令是我们检查网络中最常用的命令,作为网络人员,基本上每天都会用到,可以很好地帮助我们分析和判定网络故障,对吧? 一般来说,网工们用 ping查看网络情况,主要是检查两个指标: …

DSP中定点与浮点运算

一、定点数及其定标 在定点DSP芯片中,采用的是定点数据数值运算,其操作数一般采用整形数来表示。一个整形数的最大表示范围由DSP芯片给定字长决定。字长越长,表示的范围越大,精度越高。 举例16位字长 每个16数位用1个符号位表示正…

ps 备忘清单_开发速查表分享

ps 命令速查备忘清单 Linux我们提供了一个名为 ps 的实用程序,用于查看与系统上的进程相关的信息,它是 Process Status 的缩写这份 ps 命令备忘清单的快速参考列表,包含常用选项和示例。入门,为开发人员分享快速参考备忘单。 开…

ATTCK v12版本战术实战研究——提权(一)

一、概述 前几期文章中,我们中介绍ATT&CK 14项战术中提权战术(一),包括提权前6项子技术。那么从前文中介绍的相关提权技术来开展测试,进行更深一步的分析。本文主要内容是介绍攻击者在运用提权技术时,…

做一个office转pdf的功能

前言: 在实际工作中,有时候我们开发手机app浏览office类型的文件时,开发难度会增加不少,为了减轻开发app同学的负担,这里我使用office类型的文件,统一转换为pdf格式的文件,以减少开发难度。 1、首先导入转换需要的jar 2、在pom文件中引入这几个jar <dependency>…

凌恩生物美文分享|转录组研究利器——三代全长转录组测序(Iso-Seq)

近年来&#xff0c;随着高通量测序技术的发展&#xff0c;转录组测序已经成为研究基因表达调控的主要手段。我们知道&#xff0c;很多物种的转录本非常多样和复杂&#xff0c;绝大多数真核生物基因不符合“一基因一转录本”的模式&#xff0c;这些基因往往存在多种剪切形式。通…