数值类型:
整数类型
数据类型 | 取值范围 | 说明 |
tinyint 极小的整型 | -27~27-1 | 占用一个字节 |
Smallint小型整型 | -215~215-1 | 占用2个字节 |
Int | -231~231-1 | 占用4个字节 |
Bigint大型整型 | -263~263-1 | 占用8个字节 |
小数类型
数据类型 | 取值范围 | 说明 |
Float | 占用4个字节长度 | 有两种表示方式,一种是flaot(有效位数,小数位数);另一种是float(二进制位数),二进制位数表示该小数所占用的二进制位数。可以精确到小数点后7位。 |
Double | 占用8个字节长度 | 表示方式是double(有效位数,小数位数)。可以精确到小数点后15位。 |
Decimal十进制小数 | 最大的有效位数是65位 | 表示方式是decimal(有效位数,小数位数)。可以精确到小数点后30位。 |
由于存储小数类型占用空间较多,因此某一个要存储的数据是整型就不要用小数型存储。
字符串类型
数据类型 | 取值范围 | 说明 |
Char | 0~255个字符 | 用于声明一个定长的数据。存储形式是char(n),n代表存储的最大字符数 |
Varchar变长字符型 | 0~65535个字符 | 用于声明一个变长的数据。存储形式是varchar(n),n代表存储的最大字符数 |
Binary二进制 | 0~255个字节 | 用于声明一个定长的数据。存储形式是binary(n),n代表存储的最大字节数 |
Varbinary变长二进制 | 0~65535个字节 | 用于声明一个变长的数据。存储的是二进制数据,形式是varbrinary(n),n代表存储的最大字节数 |
除了上面列出的4种字符串类型外,还有用于存储大型二进制字符串数据和大型字符串数据的blob和text类型。其中在blob中分为4种类型:tinyblob、blob、mediumblob、longblob。在text类型中也分为4种:tinytext、text、mediumtext、longtext。针对要存入的文本大小,可以选择blob或text类型中任意一种数据类型。
日期时间在数据库中经常会存放一些日期时间数据,比如:在数据表中记录添加数据的时间。对于日期和时间类型的数据也可以用字符串类型存放,但是为了使数据库标准化,在数据库中提供了专门存储日期和时间的数据类型,在mysql中,日期时间类型包括datetime、time、timestamp、date等。
数据类型 | 取值范围 | 说明 |
Datetime | 1000-01-01 00:00:00~ 9999-12-31 23:59:59 | 存储的格式是YYYY-MM-DD HH:MM:SS |
date | 1000-01-01~9999-12-31 23:59:59 | 存储的格式是YYYY-MM-DD |
Timestamp | 显示的固定宽度是19个字符 | 主要用来记录update或insert操作时的时间 |
Time | -838:59:59~838:59:59 | 存储的格式是HH:MM:SS |
这里,timestamp类型比较特殊,timestamp的返回值是YYYY-MM-DD HH:MM:SS格式的,如果需要数字值,可以在设置为timestamp的数据上加上“+0”。比如说:timestamp得到返回值是2012-01-01 13:00:01,那么应在timestamp上加上“+0”后得到的就是20120101130001.
其他数据类型
1、 枚举类型,在mysql数据库中存储枚举类型值时,并不是直接将值记入数据库中,而是记录值得索引。值得索引是按值得顺序生产的,比如:枚举值是‘昨天’、‘今天’、‘明天’,那么值的索引就是1、2、3。在枚举类型中,索引值0代表的是错误的空字符串!
2、 集合类型,在mysql数据库中,保存集合类型数据库时也不是真正地保存值,而是保存其二进制编码。二进制的每一位对应集合中的每一项,其中低阶位对应的是集合中的第一个成员。
3、 位类型,位类型包括bit和bool两种类型。Bit类型主要用来定义一个指定位数的数据。它的取值范围是1~64.那么,它所占的字节数是根据他的位数决定的,1个字节等于8位;bool用于逻辑值得判断,只有true和false两个值。可以用bool类型存放判断的只有两个值的字段,这样可以节省数据的存储空间。比如:当数据库存储酒店房间是否为空房时,可以使用为类型表示。