• MySQL数据类型


    MySQL数据类型分为

    数值类型,文本、二进制类型,时间日期类型,string类型

    数值类型

    在MySQL中,整形可以指定时有符号的和无符号的,默认是有符号的,可以通过unsigned来说明某字段是无符号的。

    bit类型

    bit字段在显示时,是按照ASCII码对应的值显示。

    同时在a,b中插入57,但显示时,a显示9 b显示57

    因为bit是以Ascll码值显示的,而57刚好是字符9

    小数类型

    float

    float(m,d) m指定显示的长度,d指定小数的位数

    float为(4,2)

    插入19.9999时 显示为20,会自动四舍五入

    decimal(m,d) m显示长度,d小数位数。

    在float和decimal中同时插入相同的值时,float最后两位已经改变,而decimal依旧是正确的值。

    float精度大约为7位,而decimal精度大约位10位

    在MySQL中使用float和decimal取决于您的数据需求和目的。 使用float可以存储宽松精度的数据,并能避免精度损失;而使用decimal可以确保精度,并且适用于需要精确计算或比例的应用程序

    字符串类型

    char类型

    char(L) L表示存储的长度,也就是字符的长度

    varchar (L) 表示存储的长度,也就是字符的长度)

    附:关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:

    varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字 节数是65532。 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占 用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符 占用2字节)。

    如何选择定长或变长字符串?

    1. 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5

    2. 如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。

    3. 定长的磁盘空间比较浪费,但是效率高。

    4. 变长的磁盘空间比较节省,但是效率低。

    5. 定长的意义是,直接开辟好对应的空间

    6. 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。

    日期和时间类型

    常用的日期有如下三个:

    1. date :日期 'yyyy-mm-dd' ,占用三字节

    2. datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从 1000 到 9999 ,占用八字节

    3. timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用 四字节

    date是用户记录日期,datetime是用户记录日期时间,而timestamp是时间戳,当表内发生变动,如插入,修改时,时间戳会自动更新修改时的时间。

    enum和set

    enum枚举 如选择题的单选题

    set集合 如选择题的多选题

    enum和set都必须插入数据内的值,其他值都不允许插入。

    enum只运行插入其中一个,而set可以插入多个。

    查找

    用自带的查找,只能查找只有一个的值。

    查询集合使用find_in_set函数

    select * from 表名 where find_in_set('要查的关键字',列名);

  • 相关阅读:
    什么是粘性代理IP
    关于liunx 宝塔运行php项目
    【C++11】C++的新特性(详解)
    从入门到进阶 之 ElasticSearch 文档、分词器 进阶篇
    wsgiref模块、web框架、django框架简介
    Kyligence李栋:从数据湖到指标中台,提升数据分析ROI
    Redis高可用实战之Cluster
    SpringCloud集成RocketMQ
    7-2 图着色问题
    e2e测试框架之Cypress
  • 原文地址:https://blog.csdn.net/weixin_57535054/article/details/134490062