5、mysql数据类型

mysql中定义数据字段的类型对你的数据库的优化是非常重要的。

mysql支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

一、数值类型

mysql支持所有标准sql数值数据类型

这些类型包括严格数值数据类型(integer、smallint、decimal、numeric),以及近似数值数据类型(float、real、double、double precision)

关键字int是integer的同义词,关键字dec是decimal的同义词

bit数据类型保存位字段值,并且支持myisam、memory、innoDB和BDB表

作为sql标准的扩展,mysql也支持整数类型tinyint、mediumint、bigint。

类型           大小-字节                       范围-有符号                 范文-无符号                   用途

tinyint         1    小整数值

smallint      2    大整数值

mediumint  3   大整数值

int/integer   4   大整数值

bigint          8   极大整数值

float           4    单精度浮点数值

double       8   双精度浮点数值

decimal     decimal(M,D) 小数值

二、日期和时间类型

表示时间值的日期和时间类型为datetime、date、timestamp、time和year

每个时间类型有一个有效值范围和零值,当指定不合法的mysql不能表示的值时使用零值。

timestamp类型有专用的自动更新特性,将在后面描述。

类型         大小          格式                        用途

date           3              YYYY-MM-DD       日期值

time           3              HH:MM:SS             时间值或持续时间

year           1              YYYY                     年份值

datetime    8               YYYY-MM-DD HH:MM:SS   混合日期和时间值

timestamp  4              YYYYMMDD HHMMSS  混合日期和时间值,时间戳

三、字符串类型

字符串类型指char、varchar、binary、varbinary、blob、text、enum和set

类型                  大小字节                    用途

char                   0-255                    定长字符串

varchar              0-65535                变长字符串

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

tinytext               0-255                   短文本字符串

blob                    0-65535               二进制形式的长文本数据

text                     0-65535               长文本数据

mediumblob       0-16777215         二进制形式的中等长度文本数据

mediumtext        0-16777215           中等长度文本数据

longblob             0-4294967295      二进制形式的极大文本数据

longtext              0-4294967295       极大文本数据                    

char和varchar类型类似,但它们保存和检索的方式不同,它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

原文地址:https://www.cnblogs.com/myheart-new/p/11947188.html