<~生~信~交~流~与~合~作~请~关~注~公~众~号@生信探索>
主要的数据类型,包括字符串、数值、日期时间
数值型
INT就是整数类型,根据允许的数值大小分为以下类型(由小到大),这样做的目的是节约空间
INT类型 | 范围(有符号) | 范围(有符号) |
---|---|---|
TINYINT | (-2^7, -2^7-1) | (0,2^8-1) |
SMALLINT | (-2^15, -2^15-1) | (0,2^16-1) |
MEDIUMINT | (-2^24, -2^24-1) | (0,2^24-1) |
INT | (-2^32, -2^32-1) | (0,2^32-1) |
BIGINT | (-2^64, -2^64-1) | (0,2^64-1) |
FLOAT就是小数,根据精度不同(小数点后位数不同),可以分为一下几类
FLOAT类型 | |
---|---|
FLOAT | 单精度 |
DOUBLE | 双精度 |
DECIMAL(M,D) | 保留几位小数 |
注:
-
DECIMAL(3,1)表示总为有 3 位数字,小数点后1位,所以范围是[-99.9, 99.9] -
默认数值是有符号的,即有正有负,如果限定数据为非负,需要加上UNSIGNED关键字
字符串
-
二进制字符串
二进制字符串主要用于存储二进制数据,包括图片、音频、视频等。
Type | 长度 | |
---|---|---|
TINYBLOB | ≤ 2^8-1 | |
BLOB | ≤ 2^16-1 | |
MEDIUMBLOB | ≤ 2^24-1 | |
LONGBLOB | ≤ 2^32-1 |
-
普通字符串
Type | 长度 | 说明 |
---|---|---|
CHAR(n=1) | [1,2^8-1] | 定长 |
VARCHAR(n) | [1,2^8-1] | 不定长 |
TINYTEXT | ≤ 2^8-1 | 不定长 |
TEXT | ≤ 2^16-1 | 不定长 |
MEDIUMTEXT | ≤ 2^24-1 | 不定长 |
LONGTEXT | ≤ 2^32-1 | 不定长 |
ENUM | ≤ 2^16-1 | 单选或不选 |
SET | 2^6 | 多选 |
CHAR可以设置长度,默认是 1,当实际输入<设定的位数时,在输入字符右边增加空格,以达到定长的目的。如果当实际输入>设定的位数时,则截断超出部分。
VARCHAR必须设置长度,如果当实际输入>设定的位数时,则截断超出部分;当实际输入<设定的位数时,则显示实际长度。
ENUM从一个集合中选择一个字符串或者为 NULL,比如性别栏可以设置成仅允许["Male", "Female", "Prefer not to say"]
SET可以给定的集合中选择多个字符串,比如 SET("足球", "篮球", "羽毛起", "乒乓球")
日期时间
Type | 范围 | 格式 |
---|---|---|
DATE | 1000-01-01 到 9999-12-31 | YYYY-MM-DD(年月日) |
TIME | -838:59:59 到 838:59:59 | HH::MM::SS(时分秒) |
YEAR | 1901到2155 | YYYY(年) |
DATETIME | 1000-01-01 00:00:00到 9999-12-31 23:59:59 | YYYY-MM-DD HH::MM::SS(年月日时分秒) |
TIMESTAMP | 1970-01-01 00:00:01 到 2038-01-19 03:14:07 | YYYY-MM-DD HH::MM::SS(年月日时分秒) |
时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。
本文由 mdnice 多平台发布