数据类型
数据类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 bytes | (-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 bytes | (-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的值 | 小数值 |
无符号就是只为正,是有符号的俩倍
枚举类型:
create table t_5(
gender enum('man','woman','?','nothing','it')
);
// 必须取枚举类型之内数据的其中一个
// 为了节省字节,还可以用数字来代替枚举中的数据
insert into t_5 values(2);
枚举的好处:
-
速度快,存数字,读取数字,快
-
-
限制数据,只允许是
enum
的数据
set类型
create table t_6(
hobby set('哲学','经济学','文学','IT','数学','MBA')
);
insert into t_6 vlaues('IT','MBA');
// 错误,不应该是俩个字段
insert into t_6 values('IT,MBA');
// 正确,只能存一个字段
// 也不能插入set中没有的
时间和日期类型: 每一个表中都应该有时间类型 datetime为最常用的时间类型
create table t_7(
createTime datetime
);
insert into t_7 values('2020-07-07 9:28:23');
// 遵循格式创建