目录
疫情期间数据库学的一直不是很好,后边发现别人都比自己会的多,现在来补补坑。
数据类型
数据类型介绍
1)、整数类型
整数类型 | 字节数 | 无符合的取值范围 | 有符合的取值范围 |
---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 |
SMALLINT | 2 | 0~65535 | -32768~32767 |
MEDIUMINT | 3 | 0~16777215 | -8388608~8388607 |
INT | 4 | 0~4294967295 | -2147483648~2147483647 |
INTEGER | 4 | 0~4294967295 | -2147483648~2147483647 |
BIGNT | 8 | 0~18446744071709551615 | -9223372036854775808~9223372036854775807 |
基本形式:数据类型(显示宽度)
计算无符合数的取值范围
- 取值范围
一个字节 = 8bit。由此可推算出,TINYINT类型数据无符号的取值范围为 28-1= 255;有符号的取值范围27-1=127。 - zerofill
搭配zerofill使用参数使用时,数字不足的显示空间由0填补。使用该参数时,MYSQL会自动加上UNSIGNED属性,只能表示无符号数,其显示宽度比默认宽度小1。 - 显示宽度
设置为int(11)的数据当输入111111时也可以显示,此时设置的显示宽度在显示该记录时将失效,但数据的显示宽度不能大于数据的默认宽度。如果大于了其最大值,将是不可插入的。
2)、浮点类型和定点数类型
整数类型 | 字节数 | 负数的取值范围 | 非负数的取值范围 |
---|---|---|---|
FLOAT | 4 | -3.4028223466E+38 ~ -1.175494351E-38 | 0和1.175494351E-38 ~ 3.402823466E+38 |
DOUBLE | 8 | -1.7976931348623157E+308~ -2.2250738585072014E-308 | 0和2.2250738585072014E ~ 1.7976931348623157E+308 |
DECIMAL | M+2 | 同DOUBLE类型 | 同DOUBLE类型 |
基本形式:数据类型(M,D)
M参数为精度,小数点不占位置
D参数称为标度,是指小数点后的长度为D
- 精度问题
在定义时不建议此形式,其不是标准用法,可能影响数据库的迁移
如果插入值的的精度高于实际定义的精度,系统会自动进行四舍五入处理。FLOAT和DOUBLE类型在四舍五入时不会报错,而DECIMAL型会有警告。
如果不指定精度,浮点数和定点数尤其默认的精度。FLOAT型和DOUBLE型默认保存实际精度(与操作系统有关)。DECIMAL型默认为整数。