MySQL数据类型

文章目录

  • 数据类型
    • 数据库类型的分类
      • 数值类型
      • 字符串类型
    • 日期
    • enum 和set

数据类型

数据库类型的分类

MySQL数据类型_第1张图片
类型也是一种约束 ,限制,不让你做某件事情

  • 可以决定占用空间的大小,既要考虑类型也要考虑磁盘,
  • 检验sql是否合法,语法检查上左右类型不匹配

数值类型

  • tinyint
    在这里插入图片描述

MySQL数据类型_第2张图片
无符号数0-255
MySQL数据类型_第3张图片
tinyint:当我们插入的时候,如果数据越界(sql就会重新终止,或者变到这个非法范围最接近的数)
字符串也同样接收
MySQL数据类型_第4张图片
通过数据类型来约束我们,在mysql里面只允许插入合法类型,合法数值,建议不要使用unsigned

  • bit
    bit(m),m指定位数,默认为1,1-64
    bit显示字段的时候,是按照ascill对应的值进行显示

MySQL数据类型_第5张图片

bit按照ascill值显示

MySQL数据类型_第6张图片
1,0在ascill表中都是不可显示的

  • float
    float (m,d),m代表显示长度,d是指定小数点后面的位数,占4个字节
    float(4,2)显示-99.9~99.99
    msql在保存时会采取四舍五入的方案

MySQL数据类型_第7张图片
在这里插入图片描述
采用四舍五入的方法,mysql存储的仍然是99.99
unsigned加后面float只支持无符号数

  • decimal
    decimal(m,d)和float一样
    MySQL数据类型_第8张图片
    float在存储的时候,精度不是很高,所以在float精度7位当中,我们只推荐decimal精度更高,double也不要使用,decimal支持的精度最大64位
    MySQL数据类型_第9张图片
    decimal整数最大位数m=65,支持小数最大位数d=30,如果d被省略了,默认为0,m被省略,默认为10,我们建议不要省略

字符串类型

  • char
    char (l):固定长度字符串,l是可以存储的长度,最大长度为255,单位是字符
    l即可以插入的长度的最大值,放l个字符
    MySQL数据类型_第10张图片
    字符!=字节
    一个英文单词/汉字就是一个字符

  • varchar
    varchar(l):可变长度字符串,l表示字符串长度,单位是字符,最大长度是65535个字节,不是字符,

MySQL数据类型_第11张图片
MySQL数据类型_第12张图片
和char的区别
char(8)我们存abcd,它会开8个空间,空间浪费
varchar(8)我们存abcd,它会存4个字节,调整开辟空间的量,空间不会浪费

说明

  • 我们可以使用65532个字节,varchar的长度是65535个,有1-3个用来记录我们用了多少个字节
  • 当我们使用utf8编码的时候,我们最大的使用参数是65535/3=21844,一个字符占用3字节
  • 变长效率比较低,不变效率比较高

越界都会报错

在这里插入图片描述

日期

  • date:年-月-日,占3字节
  • datatime :时间日期 ,年-月-日-时-分-秒,占8字节
  • timestamp:时间戳,从1970年开始,格式和datetime一样,占4个字节,我们创建出来,就会自动更新,默认就是当前时间 ,最近修改的时间记录下来

MySQL数据类型_第13张图片
格式都是一样的,在数据库里面

字段得全,分隔符我们写的不同格式,在mysql中都会做调整,所以,我们最好就按照mysql里面的操作进行操作
MySQL数据类型_第14张图片
这个地方修改了t1之后t3会自动更新

enum 和set

  • enum枚举类型,单选
    enum(选项1,选项2.。。)最多是65535个选项,在里面还是以整数进行存储的

MySQL数据类型_第15张图片
MySQL数据类型_第16张图片
底层还是存储整数

  • set集合,多选
    set(选项1,选项2.。。)最多是65535个选项,在里面还是以整数进行存储的
    案例:调查一个人的喜好

在这里插入图片描述
用,进行分割

MySQL数据类型_第17张图片
set它也是用1,2,3来表示对应的爱好,它是用比特位来表示选择什么选项,1,2代表是比特位的位数

select * from votes where find_in_set(‘swim’,sports);//这样会把爱好游泳的都搜查出来
MySQL数据类型_第18张图片

你可能感兴趣的:(MySQL,mysql,数据库,sql)