MySQL中定义数据字段的类型对数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为四类:数值、日期/时间、字符串(字符)类型、枚举类型与集合类型。
一、数值类型
MySQL支持所有标准SQL数值数据类型。
类型
大小(字节)
范围(有符号)
范围(无符号)
用途
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)
极大整数值
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的值
小数值
1.整数类型
tinyint[(m)] [unsigned] [zerofill]
小整数,数据类型用于保存一些范围的整数数值范围:
有符号(默认为有符号):
-128 ~ 127
无符号:
0 ~ 255
PS: MySQL中无布尔值,使用tinyint(1)构造。
创建有符号tinyint表
create table t1(x tinyint);
desc t1;