1、MySQL支持多种数据类型:

  1》数值类型:整数类型tinyint、smallint、mediumint、bigint、int;浮点小数类型float、double;定点小数类型decimal。

  2》日期 / 时间类型:year、time、date、datetime、timestamp。

  3》字符串类型:char、varchar、binary、varbinary、blob、text、enum、set。

2、各种数据类型详解:

  1》整数类型:

   

float mysql 小数位数 mysql中的小数表示类型_取值范围

   

float mysql 小数位数 mysql中的小数表示类型_字符串_02

   2》浮点数类型和定点数类型

    MySQL中使用浮点数和定点数来表示小数。浮点数有两种:单精度浮点数(float)和双精度浮点数(double)。定点数只有一种类型:decimal。

    浮点数类型和定点数类型都可以使用(M,N)来表示,其中M称为精度,表示总共的位数;N称为标度,是表示小数的位数。

    

float mysql 小数位数 mysql中的小数表示类型_数据库_03

    decimal类型不同于float和double,decimal实际是以串存放的,decimal可能的最大取值范围与double一样,但是其有效的取值范围由M和D的值决定。如果改变M而固定D,则其取值范围将随M的变大而变大。其存储占用的空间也不是固定的,是M+2个字节。

数据类型

有 / 无符号

最小值

最大值

float类型取值范围

有符号的取值范围

-3.402823466E+38

-1.175494351E-38

无符号的取值范围

0和1.175494351E

3.402823466E+38

double类型取值范围

有符号的取值范围

-1.7976931348623157E+308

-2.2250738585072014E-308

无符号的取值范围

0和2.2250738585072014E-308

1.7976931348623157E+308

    不论是定点还是浮点类型,如果用户指定的精度超出精度范围,则会四舍五入进行处理。float、double在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),decimal如果不指定精度,默认是(10,0)。

    3》日期和时间类型

       主要有:datetime、date、timestamp、time、year。

       

float mysql 小数位数 mysql中的小数表示类型_操作系统_04

 

   1>year:

 

输入格式

范围

示例

以4位字符串或者4位数字格式表示year

'YYYY'或YYYY

'1901'~'2155'

输入'2010'或2010

以2位字符串格式表示year

'00'~'69'范围值转换为2000~2069;'70'~'99'转换为1970~1999。'0'和'00'作用相同,插入超过取值范围的值将被转换为2000。

'00'~'99'

 

以2位数字表示year

1~69转换为2001~2069;70~99转换为1970~1999。但0值将为转换为0000,而非2000。非法year值都将转换为0000。

1~99

 

   2>time:

float mysql 小数位数 mysql中的小数表示类型_操作系统_05

 

     currrent_time / current_time():时间函数

     now():时间函数

    3>date类型

      可以使用字符串类型和数字类型的数据插入,只要符合date类型的日期格式。其中年份可以简写YY,但世纪不确定,解析同year的缩写形式。

      使用current_date / current_date()、now()。允许使用不严格的语法,其中的格式分割符可以是非标准的分隔符。

     4>datetime类型

       now()函数。允许使用不严格的语法,其中的格式分割符可以是非标准的分隔符。

 

     5>timestamp类型:

   4》文本字符串类型:文本字符串、二进制字符串

   

float mysql 小数位数 mysql中的小数表示类型_数据库_06

 

   1> char(M)和varchar(M),在严格模式下,字段最多存储M个字符,只是char(M)会一直占用M个字符的存储空间,而varchar(M)则根据实际存储的字符个数N存储N+1个字符的空间。

   2>text类型:tinytext、text、mediumtext、longtext

   

float mysql 小数位数 mysql中的小数表示类型_数据库_07

 

   3>enum类型:可以插入枚举值、枚举值对应的序号



字段名 enum('value1','value2',...,'valueN');



   4>set类型:字符串对象最为元素。

 5》二进制字符串类型

   二进制数据类型有:bit、binary、varbinary、tinyblob、blob、mediumblob、longblob。

  

float mysql 小数位数 mysql中的小数表示类型_取值范围_08

  1>bit类型:位字段类型。

  2>binary和varbinary类型

  3>blob类型

3、如何选择数据类型