mysql数据类型

    mysql支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
  1.数值数据类型:包括整数类型tinyint、smallint、mediumint、int、bigint,浮点小数数据类型float、double,定点小数类型decimal。
  2.日期/时间类型:包括year、time、date、datetime和timestamp。

  3.字符串类型:包括char、varchar、binary、varbinary、blob、text、enum和set。

1.1 整数类型

 数值型数据类型主要用来存储数字,不同的数据类型存储提供不同的取值范围,可以存储的值的范围越大,其所需要的空间越大。根据实际需要选择最合适的类型,这样有利于提高查询的效率和节省存储空间。并且整数类型的属性字段可以添加AUTO_INCREMENT自增约束条件。

                   不同数据类型的存储和取值

类型名称说明存储要求   有符号无符号
tinyint很小的整数1个字节-128~1270~256
smallint小的整数2个字节-32768_327670~65535
mediumint中等大小的整数3个字节-8388608-83886070~16777215
int普通大小的整数4个字节-2147483648~21474836470~4294967295
bigint大整数8个字节-9223372036854775808~92233720368547758070~18446744073709551615

       sql语句中,字段的数据类型INT(11),注意到后面的数字11,这表示的是该数据类型指定的显示宽度,显示宽度和数据类型的取值范围是无关的,数值的位数小于指定的宽度时会有空格填充。如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。

1.2 浮点数类型和定点数类型

  浮点类型有两种:单精度浮点类型(float)和双精度浮点类型(double),定点类型只有一种:decimal。浮点类型和定点类型都可以可以用可以用(M,N)来表示,其中M称为精度,表示总共的位数;N表示标度,是表示小数的位数。

类型名称说明存储需求
float单精度浮点数4个字节
double双精度浮点数8个字节
decimal(M,N)压缩的"严格"定点数M+2个字节
      decimal实际是以串存放的,decimal可能的最大取值范围与double一样,但是其有效的取值范围由M和N的值决定,如果改变M而固定N,则其取值范围将随M的变大而变大。无论是定点还是浮点类型,如果用户指定的精度超出精度范围,则会四舍五入进行处理。

     float和double在不指定精度时,默认会按照实际的精度,decimal如不指定精度,默认为decimal(10,0)。在mysql中,定点数以字符串存储,在对精度要求比较高的时候(如货币、科学数据)使用decimal的类型比较好。另外两个浮点数进行减法和比较运算时,也容易出问题,所以在使用浮点型时需要注意,并尽量避免做浮点数比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值