• mysql数据常见类型


    整数类型(默认是自带符号的)

    create table t2(id int unsigned)无符号类型;
    create table t3(id int(括号内是屏幕的显示位数) zerofill);

    浮点型

    定点数类型 dec等同于decimal
    浮点类型 float double
    float (m,d)[unsigned][zerofill] m是数字总数,d是小数总数,m最大是255,d最大是30
    double (m,d)[unsigned][zerofill] m是数字总数,d是小数总数,m最大是255,d最大是30
    decimal(m,d)[unsigned][zerofill] m是数字总数(符号不算),d是小数总数,m最大是65,d最大是30

    日期类型

    create table t1(id int,name char(20),birth_year year,birthday date,class_time time,reg_time datetime);
    1 | tang | 2022 | 2022-06-30 | 11:16:35 | 2022-06-30 11:16:35

    datetime与timestamp的区别
    datetime是1001-9999年 timestamp是1970-2038年
    datetime存储时间与时区无关,而timestamp与时区有关
    datetime使用8字节,timestamp则是4个字节
    datetime默认值是null,timestamp不是,默认是当前时间

    字符类型

    char 定长
    varchar 变长
    select char_length(name) from t1; # 查询字符数(char 默认会将末尾的0删除)
    如果想要char不删除多余的0,需要在mysql命令行进行配置
    SET sql_mode = ‘PAD_CHAR_TO_FULL_LENGTH’;
    那么在查询方面还是存储方面的话,能用char就不用varchar,一些存进去就不常用的数据可以用varchar
    varchar无论是查询方面还是存储方面都比不上char,仅仅只是在存储大小方面比char要更节省罢了
    eg:
    char类型的存储
    char(5) 可以看到因为固定长度的关系所以说看的很清晰
    ** |**|||***|
    varchar类型的存储
    varchar(5) 可以看到varchar存储的时候因为没固定长度的说法所以看着很乱,它自己搞了一个头部用来存放字符的大小,所以说查询的时候就很麻烦,要先查看这个字节数,再查你需要的数据
    (字节数)(数据)(字节数)(数据)(字节数)(数据)

    枚举类型与集合类型

    enum 单选
    set 多选
    mysql> create table student(id int,name char,age int,sex enum(‘male’,‘female’,‘other’),hobby set(‘football’,‘basketball’,‘swim’));
    Query OK, 0 rows affected (0.03 sec)

    mysql> desc student;
    ±------±------------------------------------±-----±----±--------±------+
    | Field | Type | Null | Key | Default | Extra |
    ±------±------------------------------------±-----±----±--------±------+
    | id | int(11) | YES | | NULL | |
    | name | char(1) | YES | | NULL | |
    | age | int(11) | YES | | NULL | |
    | sex | enum(‘male’,‘female’,‘other’) | YES | | NULL | |
    | hobby | set(‘football’,‘basketball’,‘swim’) | YES | | NULL | |
    ±------±------------------------------------±-----±----±--------±------+
    5 rows in set (0.01 sec)

    mysql> insert into student values(1,‘‘,23,’‘,’***’);
    Query OK, 1 row affected, 3 warnings (0.01 sec)

    mysql> select * from student; 可以看到输入没有的数据,枚举和集合这块都是空值,不会报错
    ±-----±-----±-----±-----±------+
    | id | name | age | sex | hobby |
    ±-----±-----±-----±-----±------+
    | 1 | * | 23 | | |
    ±-----±-----±-----±-----±------+
    1 row in set (0.00 sec)

    mysql> insert into student values(2,‘*’,23,‘male’,‘football’);
    Query OK, 1 row affected (0.01 sec)

    mysql> select * from student;
    ±-----±-----±-----±-----±---------+
    | id | name | age | sex | hobby |
    ±-----±-----±-----±-----±---------+
    | 1 | * | 23 | | |
    | 2 | * | 23 | male | football |
    ±-----±-----±-----±-----±---------+
    2 rows in set (0.00 sec)

  • 相关阅读:
    Qt QFile文件操作详解
    Java开发学习(二十八)----拦截器(Interceptor)详细解析
    Java Opencv识别图片上的虫子
    使用VisualStudio制作上位机(六)
    打破边界,边缘计算有何应用场景?
    设计模式--模板方法&外观模式
    Multisim14.0仿真应用设计(四)基于LM324的电压跟随器仿真
    arcgis中投影文件(.prj)和地理转换文件(.gtf)存储路径
    山东大学项目实训十六——可控音乐变压器Controllable Music Transformer
    Xcode 清空最近打开的项目
  • 原文地址:https://blog.csdn.net/LOVE_jianshen/article/details/126828139