MySQL各种日期类型、整型、字符串类型

日期类型 存储空间 日期格式 日期范围
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
year 1 bytes YYYY 1901 ~ 2155

timestamp 类型的列有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。

timestamp比较受时区timezone的影响以及MYSQL版本和服务器的SQL MODE的影响。

详情可参考链接地址:http://www.jb51.net/article/23966.htm

各种整型类型:int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间,所以不需要指定长度。

类型 存储空间 大小范围
bigint 8 bytes -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 
int 4 bytes -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)
smallint 2 bytes -2^15 (-32,768) 到 2^15 – 1 (32,767)
tinyint 1 bytes 0 到 255

各种字符串类型:

类型 长度(大小)
CHAR 0~255字节
VARCHAR 0~65535字节
TINYTEXT 2^8字节
TEXT 2^16字节
MEDIUMTEXT 2^24字节
LONGTEXT 2^32字节
BINARY 0~255字节
VARBINARY 0~65532字节
TINYBLOB 2^8字节
MEDIUMBLOB 2^24字节
BLOB 2^16字节
LONGBLOB 2^32字节

ENUM

枚举对象,最多65535个

SET

字符串对象,最多64个

在MySQL中,varchar定义的长度的单位是字符,哪怕是1个多字节字符也是1个字符,如中文和英文字母都被当作1个字符来对待。那么varchar能够定义的最大长度是多少呢?这个和你当前所使用的字符集有关。抛开字符,其最大长度为65535字节(这是最大行大小,由所有列共享),而放在不同的字符集下,能够定义的最大长度就会有所不同,如UTF8下是21845。据说MySQL5中varchar的长度也为字符,而MySQL4中的则为字节,未经证实,感兴趣的有环境可以自己测下。此外,char数据类型定义的长度也为字符,其最大长度为255

猜你喜欢

转载自yunlian0621.iteye.com/blog/2219427