美文网首页
数据类型

数据类型

作者: 阿莫西灵不灵 | 来源:发表于2019-03-22 23:27 被阅读0次

    数据类型学习摘要(只记录自己认为难理解的和易忘记的)

    一、浮点数(FLOAT/DOUBLE)与定点数(DECIMAL)区别:

    1.浮点数的存储空间是默认的,定点数的存储空间由其精度决定

    2.当规定了数据的精度时(例如:FLOAT(6,2),DOUBLE(6,2),DECIMAL(6,2)),实际数据超出精度范围后,浮点数四舍五入,无警告,而定点数(DECIMAL(M,D);M代表数据总长度,称为精度,D代表小数点后的长度,称为标度)截断,且有相应警告;

    3.当不规定数据精度时,浮点数有默认精度,而DECIMAL型默认整数位为10,小数位为0,即默认为整数,例如c的数据类型为DECIMAL,插入3.1434,显示为3,且有警告

    4.在MySQL中,定点数以字符串形式存储,精度比浮点数要高,且浮点数会出现误差,所以选择定点数比较安全

    二、日期及时间类型:

    YEAR类型占一个字节,即8位,8位范围是0-255,而YEAR范围1901-2155,矛盾了不是?

    原来YEAR的表示方法是1900+(0-255),所以才有了1901-2155

    DATETIME占8个字节,范围:1000-01-01 00:00:00~9999-12-31 23:59:59

    TIMESTAMP占4个字节,范围:19700101080001~20380119111407;零值:00000000000000

    DATETIME零值:0000-00-00 00:00:00

    TIMESTAMP的几种与DATETIME类型不同的形式:

    1.使用CURRENT_TIMESTAM与P来输入当前日期时间

    2.输入NULL时,系统会输入系统当前日期与时间

    3.无任何输入时,系统会输入系统当前日期与时间

    4.TIMESTAMP类型能够根据不同地区的时区来转换时间

    三、CHAR与VACHAR:

    1.CHAR的长度固定,而VARCHAR长度可变,例如:向CHAR(5)插入“1”,占用5个字节;而VARCHAR(5)中“1”占用2个字节(占用空间为字符串实际长度加 1)

    2.CHAR类型自动删除空行,‘123 ’显示‘123’而VARCHAR保留空格,‘123 ’显示‘123 ’

    3.CHAR与VARCHAR若插入值超限,系统阻止值的插入并报错

    四、ENUM类型:('woman','man')

    1.枚举类型,最多有65535个值,列表中每一个值都有一个顺序排列的编号,MySQL中存入的是这个编号,而不是列表中的值;

    2.如果ENUM加上了NOT NULL 属性,其默认值为列表的第一个元素;若不加NOT NULL属性,ENUM类型允许插入NULL,且NULL为默认值

    3.ENUM只能选取列表的一个值

    五、SET类型:('woman','man')

    1.枚举,与ENUM类型一致

    2.可以取列表中一个元素或多个元素的组合,最多为64个元素构成的组合

    3.插入记录时,SET字段中的元素顺序无关紧要,存入MySQL数据库后,数据库系统会自动按照定义时的顺序显示

    4.所有的插入值必须是列表的元素,当插入值的一部分元素正确,一部分错误,系统会报错

    相关文章

      网友评论

          本文标题:数据类型

          本文链接:https://www.haomeiwen.com/subject/ujgdvqtx.html