整型
1.tinyint signed(-128到127) unsigned(0到255)需要一个字段存储
* signed表示要存储负数 unsigned表示要存储正数
* signed和unsigned性能上的区别,unsigned性能更好,unsigned范围是0-500,signed是-2147483648 - 500
2.smallint signed(-32768到32767) unsigned(0到65535)需要两个字段存储
3.mediumint signed(-8388608到8388607) unsigned(0到16777215)需要三个字段存储
4.int signed(-2147493648到2147493647) unsigned(0到4294967295)需要四个字段存储
5.bigint signed(-9223372036854775808到9223372036854775807) unsigned(0到18446744073709551615)需要八个字段存储
小数
1.float signed(-3.402823466E+38到-1.175494351E-38) unsigned(0和1.175494351E-38 to 3.402823466E+38)需要四个字段存储[单精度,会有误差]
2.double signed(-1.7976931348623157E+308到-2.2250738585072014E-308) unsigned(0和2.2250738585072014E-308到1.7976931348623157E+308)需要个八字段存储[双精度]
3.decimal定点值,根据m设置来,默认是10
字符串
1.char固定长度字符,0到155个字符,插入的字符长度不够时在右边补充空格,取字段时删除空格,英文占用一个字符,中文两个
2.varchar可变长度字符,0到255个字符(5.0版本支持65535个字符),占用字符根据字符集不同
3.tinyblob较小的二进制对象,255个字符(0.25KB),搜索时区分大小写
4.tinytext同上,搜索时不区分大小写
5.blob二进制对象,支持65535个字符(64KB),需要长度+2字节的存储
6.text支持65535个字符(64KB),要求长度+2字节的存储
7.mediumblob中等大小的二进制对象,支持16777215个字符(16M),需要长度+3字节的存储
8.mediumtext支持16777215个字符(16M),需要长度+3字节的存储
9.longblob大的的二进制对象,支持4294967295个字符 (4G) ,需要长度+4字节的存储
10.longtext支持4294967295个字符(4G),需要长度+4字节的存储
11.ENUM枚举,最大有65535个值
12.set一个集合,可以有0到64个值,也需要先指定固定的几个值,存储的时候可以存其中的几个,获取数据比较困难
日期
1.datetime格式:'YYYY-MM-DD HH:MM:SS',范围:'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
2.date格式:'YYYY-MM-DD',范围:'1000-01-01'到'9999-12-31'
3.timestamp格式:时间戳
4.time格式:'HH:MM:SS',范围:'-838:59:59'到'838:59:59'
单精度和双精度的区别:
(1)在内存中占有的字节数不同:单精度浮点数在机内占4个字节,双精度浮点数在机内占8个字节
(2)有效数字位数不同:单精度浮点数有效数字8位,双精度浮点数有效数字16位
(3)所能表示数的范围不同:单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
(4)在程序中处理速度不同:一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快
浮点类型和定点类型都可以用(M, D)来表示,其中M(1~65,decimal时默认10)称为精度,表示总共的位数;D(0~30)称为标度,表示小数的位数
blob和text区别:
本质区别主要是blob是二进制字符串(字节字符串),text是非二进制字符串(字符字符串)