MySQL的基本数据类型

整型

  1、整型有四种

    tinyint   smallint   int   bigint

  2、区别

    不同的int类型能够存储的数字范围是不一样的

    要注意是否存负数(正负号需要占一个比特位)

    针对手机号码只能用bigint

  3、正负号

    所有的int类型默认都需要正负号

create table t6(id tinyint unsigned);  # 移除正负号

  4、整型中括号内数字的作用

    在整型中括号内的数字并不是用来限制存储的长度 而是用来控制展示的长度,在定义整型字段的时候 不需要自己添加数字 使用默认的就可以

    整型比较的特殊 是唯一个不是用来限制存储长度的类型

 浮点型

  1、浮点型分类

    float(255,30)  # 总共255位 小数位占30位

    double(255,30)  # 总共255位 小数位占30位

    decimal(65,30)  # 总共65位 小数位占30位

  2、区别

    三者的精确度不一样

    float < double < decimal

    具体情况具体使用

字符类型

  1、分类

    char(4)

       定长类型  最多只能存四个字符 多了报错少了自动空格填充至四个

    varchar(4)

      变长类型  最多只能存四个字符 多了报错少了有几个则存几个

  2、报错修改

    针对5.6版本超出范围不会报错 而是自动帮你截取并保存(此行为不合理)

    方式1:

      修改配置文件(永久)

    方式2:

      命令修改(暂时)

show variables like '%mode%'
set session  # 当前窗口有效
set global  # 当前服务端有效
set gloabl sql_mode = 'strict_trans_tables'
修改完毕后退出客户端重新进入即可  

  3、char于varchar区别

    char;

      优势:整存整取 速度快

      劣势:浪费存储空间

    varchar;

      优势:节省存储空间

      劣势:存取数据的速度较char慢

  4、注释(comment)

    在创建字段的时候可以加上相应的注释

create table t12(
    id int comment '序号',
    name char(4) comment '姓名'
);

枚举(enum)

  多选一

enum()
    create table user(
        id int,
        name varchar(32),
        gender enum('male','female','others')
    );
    insert into user values(1,'jason','');  # 报错
    insert into user values(1,'jason','male');  # 正常

集合(set)

  多选多(包含了多选一)

set()
    create table userinfo(
        id int,
        name char(16),
        hobby set('basketball','football','doublecolorball')
    );

日期类型

date        年月日
datetime    年月日时分秒
time        时分秒
year        年份

  例子

create table client(
    id int,
    name varchar(32),
    reg_time date,
    birth datetime,
    study_time time,
    join_time year
);
insert into client values(1,'jason','2000-11-11','2000-1-21 11:11:11','11:11:11',1995);

 

posted @ 2022-03-02 20:07  那就凑个整吧  阅读(62)  评论(0编辑  收藏  举报