1、MySQL为什么要提供数据类型?
如果没有数据类型,那么MySQL就不知道需要分配多大的存储空间来存储你的数据,过大会浪费,会造成资源浪费,体积变大效率变低,过小可能导致数据溢出不能完整的保存数据,所以MySQL提供数据类型的目的是为了让我妈合理的分配存储空间,降低数据库的体积,为了让我们合理的分配存储空间,完整的保存数据,为了更好的对数据库进行优化
2、MySQL中哪些数据类型?
-整型类型/浮点类型/定点类型/字符类型/文本类型/枚举类型/集合类型/日期类型/布尔类型
3、整数类型 - 专门用来保存整数的
TINYINT 1字节 (-128,127)(0,255) 小整数值
SMALLINT 2字节 (-32768,32767)(0,65535)大整数值
MEDIUMINT 3字节 (-8388608,8388607)(0,16777215)大整数值
INT或INTEGER 4字节 (-2147483648,2147483647)(0,4294967295)大整数值
BIGINT 8字节 (-9223372036854775808,9223372036854775807)(0,18446744073709551615)大整数值
注意点:
-MySQL中的整型和其他编程语言的整型一样,也区分有符号和无符号
+默认情况下整型就是有符号的
+我们可以在数据类型的后面加上unsigned让数据类型变成无符号的
-在设计数据库的时候,一定要合理的使用数据类型
+例如:我们要保存一个人的年龄
+我们应该使用TINYINT类型,因为人最多活到255岁已经上天了,所以使用最小的整型即可
+如果使用其他的整型,就会造成资源浪费,数据库体积变大,效率变低
-在保存数据的时候,如果超出了当前数据类型的范围,那么就会报错
例如:
create table person(
id int,
age tinyint
);
INSERT INTO person Values(1,-128);
INSERT INTO person Values(2,127);
前面两行均可正常插入
INSERT INTO person Values(1,128);
这一行插入数据报错
-在设置整型的时候,还可以设置整型数据将来的位宽
+例如:现在设置将来显示整型的位宽是2,现在存储的数据1,那么将来查询出来的数据就会显示成 1;
+ 2020-2-3 --> 2020-02-03
create table person3(
id int,
age tinyint(2) ZEROFILL
);
如果存储的数据没有指定的位宽,那么就会自动补空格或者0,如果大于或者等于了指定的位宽,毛都不做。