1.基础类型

字符串
char 定长字符串(0-255字节)
varchar 变长字符串(0-65535字节)
tinytext 文本串(255B)
text 文本串(65KB)
mediumtext 文本串(16MB)
longtext 文本串(4G)
注:各种text都是变长文本,括号中的值是其最大长度。

注:CHARSET属性和COLLATE属性:
(3条消息) MYSQL中的COLLATE(COLLATION)是什么?_云骥行空的博客-CSDN博客_collation
MySQL :: MySQL 8.0 Reference Manual :: 10.3.5 Column Character Set and Collation

CHARACTER SET binary属性会将character string data type变成对应的binary string data type

BINARY属性:非标准SQL的扩展,指定对应的CHARSET的binary collate,在MySQL 8.0.17中已经被标为deprecated。

二进制
tinyblob 二进制串(255B)
blob 二进制串(65KB)
mediumblob 二进制串(16M)
longblob 二进制串(4G)
注:text和blob的区别在于text拥有一个字符集,在排序和比较过程中blob完全基于数值大小,而blob取决于字符集定义的比较规则

日期和时间

类型大小格式范围描述
date4字节YYYY-MM-DD1000-01-01 ~ 9999-12-31.年月日
time3字节HH:MM:SS'-838:59:59'~'838:59:59'表示一个时间点或者一段时间
year1字节YYYY1901 ~ 2155单独表示年份
datetime8字节YYYY-MM-DD HH:MM:SS “1000-01-01 00:00:00~9999-12-31 23:59:59日期+时间
timestamp4字节YYYY-MM-DD HH:MM:SS1970-01-01 08:00:01 ~ 2038-01-19 11:14:07(UTC)时间戳

timestamp把插入的时间从当前时间转化为UTC进行存储,取出时又将其转化为本地时区。而datetime不会做这种转换。
timestamp和datetime的初始化和自动更新:默认情况下explicit_defaults_for_timestamp是关闭的,需要显式指定:
column_name timestamp default current_timestamp on update current_timestamp

相关处理函数:https://blog.csdn.net/u012373...

数值类型
tinyint 1字节
smallint 2字节
mediumint 3字节
int 4字节
bigint 8字节
float 4字节
double 8字节
decimal 4字节 decimal(p, d) p指所有数字个数的总和,d指小数部分数字的总和。p的取值范围为1-65,默认为10,d的取值范围为0-30,不得超过p。
以上数值类型可以添加unsigned属性。


p__n
491 声望10 粉丝

科学告诉你什么是不可能的;工程则告诉你,付出一些代价,可以把它变成可行,这就是科学和工程不同的魅力。