mysql常用字段类型整理

整型

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是非二进制字符串(字符字符串)

你可能感兴趣的:(mysql常用字段类型整理)