1.1.1 整型
整型 |
占用字节 |
范围 |
范围 |
tinyint |
1 |
-27~27-1 |
-128~127 |
smallint |
2 |
-215~215-1 |
-32768~32767 |
mediumint |
3 |
-223~223-1 |
-8388608~8388607 |
int |
4 |
-231~231-1 |
-2147483648~2147483647 |
bigint |
8 |
-263~263-1 |
多学一招:一个字节=8位
帮助的位置:列类型——数值类型
1.1.2 显示宽度
显示宽度:最小的显示位数,比如int(11),最少用11位数字显示值。
注意:显示宽度不决定显示范围,只是在数值不够指定位数的时候用0做前导。
1.1.4 浮点数
浮点数 |
占用字节 |
范围 |
float(单精度) |
4 |
-3.4E+38~3.4E+38 |
double(双精度) |
8 |
-1.8E+308~1.8E+308 |
浮点数的声明:float(M,D),double(M,D)
M:总位数 D:小数位数
插入测试数据
注意:没有指定小数位数,默认小数位数是0位
1.1.1 定点数(小数)
语法:decimal(M,D)
M的最大值是65,D的最大值是30,默认是(10,0)
注意:decimal是变长的,大致每9个数字用4个字节存储,整数和小数分开存储。定点数占用的资源可能会比浮点数大很多。
1.1 MySQL数据类型——字符型
数据类型 |
描述 |
char(L) |
定长字符 |
varchar(L) |
可变长度字符 |
tinytext |
大段文本(大块数据) 28-1=255个字符 |
text |
大段文本(大块数据) 216-1=65535个字符 |
mediumtext |
224-1 |
longtext |
232-1 |
1.1.1 char
1、 char(L):MySQL不回收多余的空间
2、 L的最大长度是255
1.1.2 varchar
1、 varchar(L):MySQL回收多余的空间
2、 L的理论最大长度是65535,但事实上达不到,因为有的字符是多字节字符,比如一个utf8的字符占用3个字节,65535/3大约保存2万多字符;如果是gbk,一个字符占两个字节,65535/2大约保存3万多个字符。
注意:一个记录的所有字段(不包含大数据)的总长度不能超过65535个字节
1.4 MySQL数据类型——日期时间型
数据类型 |
描述 |
datetime |
日期时间 占8个字节 |
date |
日期 占四个字节 |
time |
时间 |
year |
年份,占用1个字节 |
timestamp |
时间戳,占用4个字节 |
1.4.1 datetime (日期时间)
格式:年-月-日 小时:分钟:秒
--插入数据
1.4.2 timestamp (时间戳)
插入数据
脚下留心:datetime和timestamp在表现上是一样的,他们的区别在于:
Datetime从1到9999,而timestamp从1970年到2038年(原因是timestamp只占用了4个字节),2038年01月19日11:14:07秒后就超过了4个字节的长度。
1.4.3 date 只保存日期,不保存时间
1.4.4 year
因为year占用1个字节,所以只能保存255个年份,范围是1901~2155
1.4.5 time
可以表示时间,还可以表示时间间隔,范围是-838:59:59~838:59:59
插入数据
多学一招:time也支持以天的方式表示时间间隔
1.5 MySQL数据类型——boolean
MySQL不支持boolean型,true和false在数据库中对应的是1和0