整数类型
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 |
网友评论