MYSQL(二) 数据库类型详解

MySQL的数据类型有大概可以分为5种,分别是 整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型。

  • 整数类型

类型名称存储需求有符号无符号
TINYINT1BYTE-128~1270~255
SMALLINT2BYTES -32768~327670~65535
MEDIUMINT3BYTES-8388608~83886070~16777215
INT(INTEGER)4BYTES-2147483648~21474836470~4294967295
BIGINT8BYTES-9223372036854775808~92233720368547758070~18446744073709551615
  • 浮点数类型和定点数类型

类型名称说明存储需求(BYTES)
FLOAT单精度浮点数4
DOUBLE双精度浮点数8
DECIMAL(M,D)压缩的“严格”定点数M+2   
  • M:数值的总位数。 通俗点讲,就是看有多少个数字,比如,5.6789,M就是5。D:小数点后面能保留几位。 比如上面的5.6789 ,D就是4。 这只是举一个例子,来说明M,D是什么,实际是先有M,D的,然后在来控制数值,而不是更具数值来确定M,D。不单单就MECIMAL有M,D这两个参数,FLOAT 和 DOUBLE 都有。
  • FLOAT、DOUBLE、DECIMAL三者的区别?

都是用来表示我们所说的小数的也就是浮点数,但是三种的精度不一样,也就是后面显示的位数不一样,

  区别一:

     FLOAT显示后面的小数点位大概在40多位,

     DOUBLE能显示的就是300多位了,不是一个层次上的,

     DECIMAL这个小数点后面能显示的位数跟DOUBLE差不多,

  区别二:

     FLOAT和DOUBLE在不指定精度时,也就是不用(M,D),默认会按照实际的精度,也就是你写多少就是多少,而DECIMAL如不指定精度默认为(10,0),也就是如果不指定精度,插入数值56.89,在数据库中存储的就是57。所以一般使用DECIMAL时就会指定精度,而使用FLOAT和DOUBLE就不用。

  区别三:

     浮点数相对与定点数(DECIMAL)的优点就是在长度一定的情况下,浮点数能够表示更大的数据范围,但是缺点是会引起精度问题。

  • 什么时候使用FLOAT、DOUBLE、DECIMAL?

对精度要求比较高的时候,比如货币、科学数据等,使用DECIMAL的类型比较好。其他的时候,看你要存放的数据的大小而定了,一般使用DOUBLE。并且在使用浮点数时需要注意,尽量避免做浮点数的比较,比如加、减,谁大谁小,这样的操作,会引起精度缺失。

  • 日期与时间类型

类型名称日期格式日期范围存储需求(BYTES)
YEARYYYY1901~2155                   1
TIMEHH:MM:SS-838:59:59~838:59:59   3
DATEYYYY-MM-DD1000-01-01~9999-12-313
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00~9999-12-31 23:59:598
TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:00 UTC~2038-01-19 03:14:07UTC4
  • 字符串类型

类型名称说明存储需求(BYTES)
CHAR(M)固定长度的非二进制字符串M,   1<=M<=255
VARCHAR(M)变长非二进制字符串L+1 ,   L<=M和1<=M<=255
TINYTEXT非常小的非二进制字符串1+L,  L<2^8
TEXT小的非二进制字符串2+L, L<2^16
MEDIUMTEXT中等大小的非二进制字符串3+L , L<2^24
LONGTEXT大的非二进制字符串4+L, L<2^32

ENUM

枚举类型,只能有一个枚举字符串值1或者2,取决于枚举值的数目,最大值65535
SET-1,2,3,4,8,取决于集合成员的数量,最多64个成员
  • 二进制类型

类型名称说明存储需求(BYTES)
BIT(M)位字段类型大约(7+M)\8
BINARY(M)固定长度二进制字符串M
VARBINARY(M)可变长度二进制字符串1+M
TINYBLOM(M)非常小的BLOB1+L, L<2^8
BLOB(M)小BLOB2+L,L<2^16
MEDIUMBLOB(M)中等大小的BLOB3+L,L<2^24
LONGBLOB(M)非常大的BLOB4+L,L<2^32

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值