• mysql的数据类型


    Java中:
    1、基本数据类型
    byte,short,int,long,float,double,char,boolean

    2、引用数据类型
    类、接口、枚举、数组、注解

    if(xx == null)

    BigInteger
    BigDecimal

    MySQL中:
    1、整数类型
    tinyint:微小整数
    smallint:小整数
    mediumint:中整数
    int,integer:整数
    bigint:大整数

    int unsigned:无符号整数,没有负数
    int(M) :如果单独使用,没意义
    int(M) zerofill:这样指定宽度才有意义
    例如:int(4) zerofill 当我存储的整数值是20,那么它会实际存储 0020
    如果你写了zerofill,就意味着无符号

    2、浮点型
    float,double
    float(M,D):M是说总的宽度,D是指定小数点后几位
    double(M,D)

    float(5,2):表示的数据范围是在[-999.99,999.99]范围。

    也可以加unsigned,
    float(5,2) unsigned:无符号小数,没有负数,它表示的范围[0,999.99]

    3、定点型
    DECIMAL
    DECIMAL(M,D)
    NUMERIC也可以这么写。

    4、日期时间类型
    date:存日期
    time:存时间
    datetime:存日期和时间
    year:存年
    timestamp:时间戳,也是可以存日期时间

    timestamp和datetime的区别:
    (1)timestamp会按照时区显示,因为它是存储毫秒值
    (2)日期范围:timestamp 1970-2038
    datetime 1000-9999

    5、字符串类型(mysql没有字符类型,全部是字符串类型)
    char:定长字符串
    char:默认长度为1
    char(M):长度为M
    例如:char(5),实际按照5个字符的宽度来存储,如果不够5个,默认用u0000填充
    "张三" ,实际 u0000u0000u0000张三
    varchar:变长字符串
    varchar(M):必须指定M
    例如:varchar(20),实际按照几个字符存储,看你数据有几个字符
    "张三",实际存2个字符 + 1个字节(记录字符的实际长度)
    text:长文本


    定长好还是变长好:
    char的好处:不用计算字符数,固定几个几个一读,虽然会浪费一些空间,但是速度快
    varchar的好处:节省空间,每次读写要计算字符数

    什么情况下选择char?
    (1)你的数据是定长,例如:手机号,学号,身份证号,订单号
    (2)频繁修改和查询

    当然,现在mysql5.5以后对varchar做了很多优化,现在的效率也还好,除了上面的两种,其他的都选varchar

    6、二进制类型
    bit:位类型,小二进制
    xxblob:大二进制,一般二维码,小头像
    xxxBINARY:字符串的二进制值

    7、枚举、集合(了解)
    枚举类型:几个中选一个
    集合类型:几个中选多个,任意组合

    8、特殊值
    (1)在mysql中所有的类型,包括int都可以赋值为null
    (2)mysql中关于null的判断
    is null
    is not null
    <=> null
    (3)所有运算符:+,-等遇到null值结果就为null

    因此null值既影响运算,又影响我们的查询,所以尽量避免null值,可以用''或0等来代替。

  • 相关阅读:
    解决硬盘分区无法挂载的问题
    Java EE学习记录(一)
    Netbeans 8.2启动参数含义及配置
    汉化CodeBlock
    linux解决无法打开资源管理器
    netbean下搭建mariadb数据库
    mariadb中执行数据库脚本的方法
    修复受损的linux引导
    修复无法启动的mariadb
    no update
  • 原文地址:https://www.cnblogs.com/sunpengblog/p/10321416.html
Copyright © 2020-2023  润新知