整型(int tinyint)
tinyint 默认创建的是有符号的
1、控制多大多小是由类型来进行控制的,并不是后面Int(2)来控制的,他的意思不是只要两位。(代表零填充)
int(M): M indicates the maximum display width for integer types
2、设置整型的位数如果超出了设定的值取最大的值
3、在使用整型的时候可以忽略括号中的值
tinyint
从 0 到 255 的整型数据。存储大小为 1 字节。
smallint
从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。
int
从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
浮点数和定点数
float和double都是浮点数,float是单精度 double是双精度
单精度和双精度的区别:双精度可以比单精度多存点
单精度实数在内存中占32bit 有效数字为6~7位
双精度实数占内存单元为64bit 有效数字为15~16位
浮点数和定点数都可以使用类型后面加(M,D)方式来表示
M:该类型一共显示出M数字
D:表示小数点后面几位
decimal(M,D)
高精度 128bit,浮点型。
float double 是 基本类型,decimal不是。
float 有效数字7位,范围 ±1.5 × 10E?45 to ±3.4 × 10E38
double 有效数字15/16 位,范围 ±5.0 × 10 E?324 to ±1.7 × 10E308
decimal 有效数字 28/29 位,范围 ±1.0 × 10E?28 to ±7.9 × 10E28
字符串
char和varchar都很相似,都可以来存储mysql中较短的字符串
1、char固定的长度,创建表的时候声明的最大长度,可以为0~255。设置了固定长度,不管你里面有多少数据都会占你设定的长度
2、varchar值为可变的,长度为0~65535之间的值。里面有多少数据就占多少字符
3、char和varchar在超出指定长度时都会被截取指定的字符串
text和blob,二者之间的区别
blob:是用来存储二进制的数据
text 是用来保存字符串的数据
blob和text在经过大量的删除之后,可能会引起性能的问题,删除以后的数据会留下"空洞"
可以使用optimize table 表名 来回收空间
枚举类型 enum
1、枚举类型,是在创建表的时候声明的
2、对于1~255个成员的枚举类型只占用1个字节来存储265~65535个成员只使用2个字节来存储。最多可以存储65535个成员
3、如果超出了枚举类型在指定的值,将会插入一个‘空‘,只能插入单个的值,而不能插入多个值
日期类型(一般存时间戳)