Loading

MySQL数据类型

mysql数据类型:整型、浮点型、日期时间型、字符型。

1.整型

TINYINT             1字节        (-128,127)          (0,255)                       小整数值 

SMALLINT          2字节     (-32 768,32 767)       (0,65 535)               大整数值 

MEDIUMINT        3字节    (-8 388 608,8 388 607) (0,16 777 215)          大整数值 

INT或INTEGER    4字节   (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 

BIGINT              8字节   (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 

2.浮点型

FLOAT          4字节   (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度浮点数值 

DOUBLE         8字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度浮点数值 

DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

M表示的是小数点之前的数字,D表示的是小数点之后的数字M>=D

3.日期时间类型

 DATE       4        1000-01-01/9999-12-31 YYYY-MM-DD    日期值 

 TIME       3        '-838:59:59'/'838:59:59' HH:MM:SS       时间值或持续时间 

 YEAR       1         1901/2155               YYYY                    年份值 

 DATETIME    8       1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值

 TIMESTAMP  4       1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS                     混合日期和时间值,时间戳

4.字符型

    CHAR           0-255字节          定长字符串 

    VARCHAR      0-255字节          变长字符串 

    TINYBLOB     0-255字节        不超过 255 个字符的二进制字符串 

    TINYTEXT     0-255字节        短文本字符串 

    BLOB         0-65535字节      二进制形式的长文本数据 

    TEXT         0-65535字节      长文本数据 

    MEDIUMBLOB   0-16 777 215字节 二进制形式的中等长度文本数据 

    MEDIUMTEXT   0-16 777 215字节 中等长度文本数据 

    LOGNGBLOB    0-4 294 967 295字节 二进制形式的极大文本数据 

    LONGTEXT      0-4 294 967 295字节 极大文本数据

    VARBINARY(M)                   允许长度0-M个字节的定长字节符串,值的长度+1个字节

    BINARY(M)  M                    允许长度0-M个字节的定长字节符串

    ENUM('value1','value2'....)  1或者2个字节  枚举值(最多65535个值)

    SET('value1','value2'.....)  1,2,3,4或8个字节,取决于set成员的数目(最多64个成员)

CHAR 和 VARCHAR 类型

  CHAR 类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。这个大小修饰符的范围从 0-255。比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。

CHAR 类型可以使用 BINARY 修饰符。当用于比较运算时,这个修饰符使 CHAR 以二进制方式参于运算,而不是以传统的区分大小写的方式。

   CHAR 类型的一个变体是 VARCHAR 类型。它是一种可变长度的字符串类型,并且也必须带有一个范围在 0-255 之间的指示器。CHAR 和 VARCHGAR 不同之处在于 MYSQL 数据库处理

这个指示器的方式:CHAR 把这个大小视为值的大小,不长度不足的情况下就用空格补足。而 VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度

(增加一个额外字节来存储字符串本身的长度)来存储值。所以短于指示器长度的 VARCHAR 类型不会被空格填补,但长于指示器的值仍然会被截短。

因为 VARCHAR 类型可以根据实际内容动态改变存储值的长度,所以在不能确定字段需要多少字符时使用 VARCHAR 类型可以大大地节约磁盘空间、提高存储效率。

VARCHAR 类型在使用 BINARY 修饰符时与 CHAR 类型完全相同。

 

TEXT 和 BLOB 类型

  对于字段长度要求超过 255 个的情况下,MySQL 提供了 TEXT 和 BLOB 两种类型。根据存储数据的大小,它们都有不同的子类型。这些大型的数据用于存储文本块或图像、

声音文件等二进制数据类型。

TEXT 和 BLOB 类型在分类和比较上存在区别。BLOB 类型区分大小写,而 TEXT 不区分大小写。大小修饰符不用于各种 BLOB 和 TEXT 子类型。

比指定类型支持的最大范围大的值将被自动截短。

 

posted @ 2017-02-24 08:47  王树燚  阅读(177)  评论(0编辑  收藏  举报