数值型分为整数型和小数型(包含小数部分的数据类型)

    mysql中光整数型数据类型就有五种:tinyint,smallint,mediumint,int,bigint
    tinyint:迷你整型,占用1个字节保存数据,能够表示256个数值
    smallint:小整型,占用2个字节保存数据,能够表示65536个数值
    mediumint:中整型,占用3个字节保存数据
    int:标准整型,占用4个字节保存数据,42亿多
    bigint:大整型,占用8个字节保存数据

    类型 字节 最小值(有符号/无符号) 最大值(有符号/无符号)
    TINYINT 1 -128/0 127/255
    SMALLINT 2 -32768/0 32767/65535
    MEDIUMINT 3 -8388608/0 8388607/16777215
    INT/INTEGE 4 -2147483648/0 2147483647
    /4294967295
    BIGINT 8 -9223372036854775808/0 9223372036854775807/18446744073709551615


    为什么要有这么多整型?
    1. 能够最大效率的使用磁盘空间,做到最少浪费。根据实际业务分配内存空间来进行数据保存。
    2. 查询的效率变高。

    如何在项目中选择使用何种整型?
    根据业务需求,某一类数据的边界值,看边界值落在那个整型的范围,就是用最小的那个。
    在实际操作中tinyint,int使用的较多

    整型表案例

    默认的,整型都是有符号类型
    无符号:表示数值只能是正的,不能有负数
    语法:在字段类型后面使用unsigned进行标识
    age tinyint unsigned;//年龄是一个迷你整型,无符号表示(0-255)
    显示宽度:占的位数,当某个数值没有达到显示宽度的时候,在数值的左边使用0来补足显示宽度(不能改变数值本身大小)

    1. -- int类型测试
    2. create table test_int(
    3. `tinyint` tinyint,
    4. `smallint` smallint,
    5. `mediumint` mediumint,
    6. `int` int,
    7. `bigint` bigint
    8. )charset utf8;
    9. insert into test_int values(1,2,3,4,5); -- 没有问题
    10. insert into test_int values(256,256,256,256,256); -- 不能插入,tinyint超出范围
    11. insert into test_int values(-100,-200,-300,-400,-500); -- 正常,默认是有符号
    12. -- 增加无符号字段类型
    13. alter table test_int add age tinyint unsigned; -- 无符号的迷你整型
    14. -- 更新表字段数据
    15. update test_int set age = -1;-- 错误,因为age是无符号,只能从0开始
    16. update test_int set age = 250;-- 正确