MySQL基本功-数据类型
数据类型作用数值类型字符串类型日期和时间类型
数据类型作用
给表字段指定存储格式、约束、有效范围,MySQL主要有以下几种数据类型:
数值类型字符串类型日期和时间类型
数值类型
类型关键字字节无符号最小值无符号最大值
整数TINYINT1028-1整数SMALLINT20216-1整数MEDIUMINT30224-1整数INT40232-1整数BIGINT80264-1浮点数FLOAT4
±
1.175494351
E
−
38
\pm1.175494351E-38
±1.175494351E−38
±
3.402823466
E
+
38
\pm3.402823466E+38
±3.402823466E+38浮点数DOUBLE4
±
2.2250738585072014
E
−
308
\pm2.2250738585072014E-308
±2.2250738585072014E−308
±
1.7976931348623157
E
+
308
\pm1.7976931348623157E+308
±1.7976931348623157E+308定点数DECIMAL(M,D)M+2和Double一致和Double一致位类型BIT1~8BIT(1)BIT(64)
有符号情况下,由于需要一位表示符号,因此数值范围为 -2
M*8-1~+2
M*8-1-1 ,其中M表示字节数。
单精度 符号位1 + 指数位8 + 尾数位23双精度 符号位1 + 指数位11 + 尾数位52 宽度定义,类似INT(8)表示宽度为8位,表示如果数值宽度小于8位时在数字前面填满宽度,和zerofill搭配使用。
字符串类型
字符串类型字节备注
CHAR(M)MM为0~255之间整数VARCHAR(M)M为0~65535之间整数BLOB允许长度0~65535字节TEXT允许长度0~65535字节LONGTEXT允许长度0~4294967295字节………
CHAR和VARCHAR的区别
CHAR的长度固定为声明的长度,而VARCHAR中的值为可变长字符串检索的时候,CHAR列删除了尾部的空格,而VARCHAR会保留空格
日期和时间类型
数据类型字节最小值最大值
DATETIME81000-01-01 00:00:009999-12:31 23:59:59TIMESTAMP4197001010800012038年某个时刻DATE41000-01-019999-12-31TIME3-838:59:59838:59:59YEAR119012155
DATETIME和TIMESTAMP的区别是什么?
TIMESTAMP的时间范围较小,不适合存放比较久远的数据表中第一个TIMESTAMP列默认值自动设置为current_timestamp,其他TIMESTAMP的列默认值为’0000-00-00 00:00:00’TIMESTAMP类型和时区相关,不同时区的人看到的时间是不一样的,而DATETIME只能反映插入时的本地时区。