字段类型分别为:数值类型、字符串类型、日期时间类型。ci
数值类型分为整数类型和小数类型。整数类型为tinyint、smallint、mediumint、int、bigint。小数类型分为浮点型和定点型,有float、double、decimal。字符串
迷你整形,系统采用1个字节来保存。最大能表示的值为0-255(2^8 - 1)效率
小整形,系统采用2个字节来保存。最大能表示的值为0-65535(2^16 – 1)。date
中整形,系统采用3个字节来保存。最大能表示的值为2^24 – 1。数据类型
整形,系统采用4个字节来保存。最大能表示的值为2^32 – 1。语法
大整形,系统采用8个字节来保存。最大能表示的值为2^64 – 1。二进制
float又称之为单精度类型,系统采用4个字节来保存。可是能表达的范围要比整形大的多,大概是10^38。单精度浮点,精确到大约为7位。float
double又称之为双精度类型,系统采用8个字节来保存。表示的范围更大,大概是10^308。精度为大约15位。im
decimal又称之为定点数,系统自动根据存储的数据来分配存储空间。大概9个数就会分配4个字节来存储,同时小数位和整数位是分开保存的。时间戳
decimal(M, D):M表示总长度,最大值不能超过65,D表明小数部分长度,最长不能超过30。
定长字符,指定长度以后,系统会分配指定的空间用于存储数据。
基本语法:char(L),L表明字符数(英文和中文同样),L为0-255。
变长字符,指定长度后,系统根据实际存储的数据来计算长度,分配合适的长度(数据没有超出长度)。
基本语法:varchar(L),L表明字符数,L的理论长度为0-65535。
由于varchar要记录数据长度,因此每一个varchar数据产生后,系统都会在数据后面增长1-2个字节的额外开销,是用来保存数据所占用的空间长度。
char和varchar的区别:
char必定会使用指定的空间,而varchar是根据数据来定空间。
char的数据查询效率比varchar高。varchar是须要经过后面的记录数来计算的。
普通的字符文本。
在选择字符存储的时候,若是数据超过255个字符,那么必定选择text存储。
在选择对应的存储文本的时候,不用刻意去选择text类型,系统会自动根据存储的数据长度来选择合适的文本类型。
枚举类型。
语法:enum(数据值1,数据值2…)
空间:若是数据值列表在255个之内,那么一个字节就够,若是超过255可是小于65535,那么系统采用两个字节保存。
集合:是一种将多个数据选项能够同时保存的数据类型,本质是将指定的项按照对应的二进制位来进行控制:1表示该选项被选中,0表示该选项没有被选中。
语法:set(‘值1’,’值2’,’值3’…)
系统为set提供了多个字节进行保存,可是系统会自动计算来选择具体的存储单元
1个字节:set只能有8个选项
2个字节:set只能有16个选项
3个字节:set只能表示24个选项
8个字节:set能够表示64个选项
Set和enum同样,最终存储到数据字段中的依然是数字而不是真实的字符串
日期类型,系统采用3个字节来保存,对应的格式为YYYY-mm-dd,能表示的范围是1000-01-01到9999-12-12。初始值为0000-00-00
时间类型,可以表示某个指定的时间,系统采用3个字节来保存。对应的格式为HH:ii:ss,可是MysQL中time能表示的范围要大的多,能表示-838:59:59-838:59:59。用处是描述时间段。
日期时间类型,就是将前面的date和time合并起来,表示的时间,使用8个字节来保存。
格式为:YYYY-mm-dd HH:ii:ss,能表示的区间为1000-01-01 00:00:00到9999-12-12 23:59:59,其值能够为0值:0000-00-00 00:00:00
时间戳类型,表示从格林威治时间开始。
格式为:YYYY-mm-dd HH:ii:ss。其值表示的区间为:1970-01-01 00:00:00 到 2038-01-19 03:14:07
年类型,采用1个字节来保存。能表示1900-2155。