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取决于字符集定义的比较规则
日期和时间
类型 | 大小 | 格式 | 范围 | 描述 |
---|---|---|---|---|
date | 4字节 | YYYY-MM-DD | 1000-01-01 ~ 9999-12-31. | 年月日 |
time | 3字节 | HH:MM:SS | '-838:59:59'~'838:59:59' | 表示一个时间点或者一段时间 |
year | 1字节 | YYYY | 1901 ~ 2155 | 单独表示年份 |
datetime | 8字节 | YYYY-MM-DD HH:MM:SS “ | 1000-01-01 00:00:00~9999-12-31 23:59:59 | 日期+时间 |
timestamp | 4字节 | YYYY-MM-DD HH:MM:SS | 1970-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属性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。