mysql的数据类型

整数类型

MySQL 主要提供的整数类型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其属性字段可以添加 AUTO_INCREMENT 自增约束条件。下表中列出了 MySQL 中的数值类型。

类型名称 说明 存储需求
TINYINT 很小的整数 1个字节
SMALLINT 小的整数 2个宇节
MEDIUMINT 中等大小的整数 3个字节
INT (INTEGHR) 普通大小的整数 4个字节
BIGINT 大整数 8个字节

根据占用字节数可以求出每一种数据类型的取值范围。例如,TINYINT 需要 1 个字节(8bit)来存储,那么 TINYINT 无符号数的最大值为 28-1,即 255;TINYINT 有符号数的最大值为 27-1,即 127。其他类型的整数的取值范围计算方法相同,如下表所示。

类型名称 说明 存储需求
TINYINT -128〜127 0 〜255
SMALLINT -32768〜32767 0〜65535
MEDIUMINT -8388608〜8388607 0〜16777215
INT (INTEGER) -2147483648〜2147483647 0〜4294967295
BIGINT -9223372036854775808〜9223372036854775807 0〜18446744073709551615

显示宽度和数据类型的取值范围是无关的。显示宽度只是指明 MySQL 最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充。如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。例如,year 字段插入 19999,当使用 SELECT 查询该列值的时候,MySQL 显示的将是完整的带有 5 位数字的 19999,而不是 4 位数字的值。

其他整型数据类型也可以在定义表结构时指定所需的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度值。

不同的整数类型有不同的取值范围,并且需要不同的存储空间,因此应根据实际需要选择最合适的类型,这样有利于提高查询的效率和节省存储空间。

字符类型

类型 范围 说明 备注
Char(N) [binary] N=1~255 个字元 binary :分辨大小写 固定长度 std_name cahr(32) not null
VarChar(N) [binary] N=1~255 个字元binary :分辨大小写 可变长度 std_address varchar(256)
TinyBlob 最大长度255个字元(2^8-1) Blob (Binary large objects) 储存二进位资料,且有分大小写 memo text not null
TinyText 最大长度255个字元(2^8-1) 储存二进位资料,且有分大小写 memo text not null
Blob 最大长度65535个字元(2^16-1) 储存二进位资料,且有分大小写 memo text not null
Text 最大长度65535个字元(2^16-1) 储存二进位资料,且有分大小写 memo text not null
MediumBlob 最大长度 16777215 个字元(2^24-1) 储存二进位资料,且有分大小写 memo text not null
MediumText 最大长度 16777215 个字元(2^24-1) 储存二进位资料,且有分大小写 memo text not null
LongBlob 最大长度4294967295个字元 (2^32-1) 储存二进位资料,且有分大小写 memo text not null
LongText 最大长度4294967295个字元 (2^32-1) 储存二进位资料,且有分大小写 memo text not null
Enum 集合最大数目为65535 列举(Enumeration),Enum单选、Set复选 zsex enum(1,0)
Set 集合最大数目为64 列举(Enumeration),Enum单选、Set复选 habby set(‘玩电玩’,'睡觉’,'看电影’,'听音乐’)

日期时间

类型 范围 说明
Date 日期(yyyy-mm-dd)
Time 时间(hh:mm:ss)
DateTime 日期与时间組合(yyyy-mm-dd hh:mm:ss)
TimeStamp yyyymmddhhmmss
Year 年份yyyy

你可能感兴趣的:(mysql的数据类型)