MySQL支持的数据类型(1)( 整数,小数,位)

 

整数类型 字节 最小值 最大值
tinyint 1

有符号-128

无符号0

有符号127

无符号255

smallint 2

有符号-32768

无符号0

有符号32767

无符号65535

mediumint 3

有符号-8388608

无符号0

有符号8388607

无符号1677215

int、integer 4

有符号-2147483648

无符号0

有符号2147483647

无符号4294967295

bigint 8

有符号-9223372036854775808

无符号0

有符号9223372036854775807

无符号18446744073709551615

浮点数类型 字节 最小值 最大值
float 4 ±1.175494351E-38 ±3.402823466E+38
double 8 ±2.2250738585072014E-308 ±1.7976931348623157E+308
定点数类型 字节 描述
dec(m,d) / decimal(m,d) m+2 最大取值范围与double相同,给定decimal的有效取值范围由m和d决定
位类型 字节 最小值 最大值
bit(m) 1-8 bit(1) bit(64)

一、对于整数类型,Mysql支持在类型后面的小括号内指定显示宽度  例如:int(5) 表示当前数值宽度小于5位的时候在数字前面填满宽度。

1.如果不指定显示宽度,则默认为int(11)

2. 配合zerofill使用:在数字位数不够的空间用字符"0"填满。  eg:修改表字段为 id1 int zerofill;

    

//创建表  id1为int,不设置显示宽度 id2为int,设置显示宽度为6  id3为tinyint 不设置显示宽度
create table t1( id1 int zerofill, id2 int(6) zerofill, id3 tinyint zerofill );

//都插入相同数值1
insert into t1 values(1,1,1);

3.设置宽度限制后,如果插入大于宽度限制的值,会正常插入。此时宽度格式已经没有意义。

二、对于整数类型,都有可选属性unsigned(无符号)

1.用于保存保存非负数或者需要较大上限的值

2.取值范围:下限是0,上限是原值的2倍。 eg: tinyint 有符号范围是-128~127 无符号范围是0~255

3.如果一个列指定为zerofill,则MySQL自动为该列添加unsigned属性

二、对于整数类型,都有可选属性auto_increment

1.自增属性,一般从1开始,每插入一条数据该字段都会+1。用于产生唯一标识符或顺序值。

2.在插入null到一个auto_increment列时,MySQL会插入一个比该列中当前最大值大1的值。

3.对于任何想要使用auto_increment的列,应该定义为not null,并定义为primary key或定义为unique键。

小数

1.对于小数的表示,分为浮点数定点数。浮点数包括float(单精度)double(双精度),定点数只有decimal一种表示。

2.定点数在MySQL内部以字符串的形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。

3.小数类型都可以在类型名称后加"(m,d)",表示该值一共显示m位数字(整数位加小数位),其中d位位于小数点后面,m和d又称为精度和标度eg:float(7,4) 插入999.00009,保存结果为999.0001。四舍五入

4.float和double在不指定精度时,默认会按照实际的精度来显示。若指定,则会自动将四舍五入的结果插入。

5.decimal在不指定精度时,默认为(10,0),如果数据超越了精度和标度,系统则会报错。

1.bit(m)用来存放多位二进制数,m的范围是1~64

2.对于位字段,直接使用select命令将不能看到结果,可以用bin()(显示为二进制格式)、hex()(显示为十六进制格式)函数进行读取。

原文地址:https://www.cnblogs.com/drake-guo/p/6114115.html