数据类型
1. 整数:
- 若实际值超出对应类型范围,则会出现"Out of range"错误;整数类型通常会指定显示宽度,如int(5),不指定默认int(11), 若实际值不满改宽度则会自动前面补0(zerofill)。
2.浮点数:
3.定点数类型与位类型:
- 定点数在MySQL中以字符串的形式存储,比浮点数更精确,可用于表示货币等高精度数据。
- 浮点和定点数都可以(M,D)方式来表示,M表示显示M位数字(整数位+小数位),D位位于小数点后面,M和D又称为精度和标度。
- 定点数默认默认精度为(10, 0), 超过精度会报错;而浮点数则根据实际值来显示。
- 对于BIT(M)位类型,M取值为1~64,默认为1,表示存放的二进制位数,实际值超过范围,则插入失败。
4.日期时间类型(MySQL5.0):
- 对于TIMESTAMP, 表中第一个TIMESTAMP类型的字段的默认值为CURRENT_TIMESSTAMP, 且一张表中仅有一个字段默认值可以为CURRENT_TIMESSTAMP。
- TIMESTAMP会与时区相关,存取都会经过本地时区转换,所以不同时区看到的日期时间会不同。
- 存储时期时间时,对应的转换规则为:
5.字符串类型(MySQL5.0)
1.CHAR与VARCHAR
- CHAR长度不可变,范围为0~255, VARCHAR长度可变, 范围为0-65535;
- 检索数据时,CHAR去除尾部的空格,VARCHAR保留尾部的空格。
2.BINARY与VARBINARY
- 类似CHAR与VARCHAR, 但BINARY存储二进制字符串,当插入数据不足指定长度时,右边填充'\0'。
3.ENUM
- ENUM类型的字段,其值范围在创建表时指定,1~255个成员存储1个字节,255~65535个成员存储2个字节,如:
4.SET
- 与ENUM类型,其成员数为1~64,但其插入数据时,可以一次选多个值,有点checkbox的味道。
其他数据类型可以细查MySQL官方文档:
http://dev.mysql.com/doc/refman/5.7/en/data-types.html
MySQL数据类型及存储要求:
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html
不吝指正。
来源:oschina
链接:https://my.oschina.net/u/222173/blog/277469