整数类型
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
8 16 24 32 64
可选属性:UNSIGNED
对字符宽度的定义,如INT(11),这并不会限制值的范围,只是规定了客户端显示字符的个数,在存储的时候,INT(1)和INT(21)是一样的
可以使用DECIMAL数据类型来存储更大或更加精确的数据
字符串类型
char 或 varchar的存储依赖于不同存储引擎的实现
VARCHAR使用变长字符串,能够节约空间,但由于行的长度可变,可能更新的开销会比较大
char适用于存储较短的字符串,另外对于char类型,尾部空格会被剔除。
BINARY和VARBINARY是以上两个类型的兄弟类型,但存储的是二进制字符串,并且空格使用'/0'存储而不是空格或截断。
BLOB和TEXT类型
BLOB保存的是二进制,没有字符集和排序规则,而TEXT则有字符集和排序规则
ENUM类型
使用ENUM类型的列可以存储65535个不同字符串,MySQL内部把每个值都保存为整数,以标识值在列表中的位置,并且还保留了一份查找表,枚举类型列的排序是按照数字排序而非字符顺序;ENUM的字符串表是固定的,添加/删除字符串只能通过使用alter table
日期和时间类型
DATETIME:1001年-9999年,精度为秒,封装在一个整数中,使用8字节存储空间
TIMESTAMP:保持自1970年1月1日午夜以来的秒数,使用4字节存储空间,只能保存1970-2038年,提供FROM_UNIXTIME(),将时间戳转换为日期,提供函数UNIX_TIMESTAMP(),将日期转换为时间戳。
另外,除非显式的指定时间戳,否则在插入时或更新时,timestamp字段都会被更新成当前时间
本文详细介绍了MySQL中的整数类型(如TINYINT、INT等)、字符串类型(包括CHAR、VARCHAR等)、BLOB和TEXT类型、ENUM类型以及日期和时间类型(如DATETIME、TIMESTAMP)。此外,还解释了不同类型的特点及应用场景。

被折叠的 条评论
为什么被折叠?



