tinyint
带符号的范围是-128~127,不带符号的范围是0~255。如果不加unsigned,默认为带符号的。
bit(M)
其中M为指定的位数,默认1,范围为1~64;在显示的时候是按照ASCII码的形式展示。
当类型是bit(1)的时候,那么存入的值只能够是0或者1。float[(m, d)][unsigned]
m为指定显示的长度,d位小数占用的长度,占用4个字节。float(4,2)范围为-99.99~99.99 - float(5,2)范围为-999.99~999.99 - 当存入放入值找过定义的长度的时候会自动的四舍五入。
如果使用unsigned 范围为0~max。
decimal(m,d)[unsigned]
m表示总共占用的长度,d为小数部分占用的长度。- 和float的区别:两者精度不一样,decima的精度比float高。
char(L)定长字符串
L为可以存储的长度,单位为字符,最大长度为255。- 定长字符串在初始化的时候就会自动的开辟固定长度的空间
- varchar(L)可变长字符串
L表示可变字符串的长度,最大为65535,最大21845个字符,L最大取值21844,通常L超过15000的时候采用text累心存储,因为超过15000的时候会影响数据库的查询效率。
- 可变长字符串会根据存储的数据的大小开辟空间
- char和varchar的区别
- char在使用的时候回开辟固定长度的空间,但是varchar回根据存储数据的长度来自动分配空间的大小。
- varchar在存储的时候磁盘利用率比较高,但是查询效率没有char高
- char在存储的时候磁盘利用率低,但是数据库查询效率高 日期和时间类型
- 常用的类型 - datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从1000到9999,占用八字节 - date:日期 'yyyy-mm-dd',占用三字节 - timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和datetime完全一致,占用四字节
当添加时间的时候,时间戳会自动添加。set和enum
- set:可以多选 - enum:只能单选
注:在查询set的时候不能直接使用where hobby=’游泳’,需要使用find_in_set(‘游泳’,hobby);