zoukankan      html  css  js  c++  java
  • 四、列的字节与存储范围

    详解列类型
     
    数值型:
    整型
    tinyint
    smallint
    mediumint
    int
    bigint
     
    类型
    字节
    Tinyint
    1
    8
    -128------127
    0------255
    Smallint
    2
    16
    -32768-------32767
    0-------65535
    Mediumint
    3
    24
    -8388608-------8388607
    0-------16777215
    Int
    4
    32
    -2147483648------2147483647
    0-------4294967295
    bigint
    5
     
    -9223372036854775808-----9223372036854775807
    0-------18446744073709551615
     
     
    tinyint为例:
    默认是有符号的,存储-128>127
    可选属性
    Tinyint(M)  unsigned  zerofill
    Unsigned:是无符号,影响存储范围,0-à255
    M:代表宽度,(在zerofill时才有意义,其他时候没有意义)
    Zerofill:零填充(如果某列是zerofill,那么它默认就是unsigned属性)0001,0002
     
    列可以声明默认值,而且推荐声明默认值
    Not null default 0
     
    小数型:浮点型,定点型
    Float(MD)M代表总位数,D代表小数位(6,2)为例:-9999.99---à9999.99
    Decimal(M,D):M,D的意义同上
     
    区别:decimalfloat精度更高,适合存储货币等要求精确的数字。
     
     
     
     
     
     
    字符型:
    Char:定长, char(M),M代表宽度,即:可容纳的字符数,0<=M<=255之间
    Varchar:变长,varchar(M),M代表宽度,即:可容纳的字符0<=M<=65535(以ascii字符为例,utf822000左右)
     
    区别在哪儿呢?
    定长:M个字符,如果存的小于M个字符,实占M个字符;
    变长:M个字符,如果存的小于M个字符,设为NN<=M,实占N个字符;
    总结:1.宽度不同
          2.实占空间不同
          3.对空格的处理不同
    速度上:定长速度快些
    选择原则:
    1. 空间利用效率,四字成语表,char4),
    个人简介,微博 最大140个字,varchar(140)
    2. 速度
    微博注册用户名:char
     
    Text:略,不太用
     
     
    日期时间类型:
    Date   日期
    Time   时间
    Datetime    日期时间类型
    Year      年类型
     
     
    Year类型:1个字节  表示1905-2155年,【0000,表示错误时选择】
    如果输入2位,“00-69”表示2000-2069;“70-99”表示1970-1999
    如果记的麻烦,输入的时候,输4位就行了。
     
    Date类型:典型格式 1992-08-12
    日期类型:1000-01-01----à9999-12-31
     
    Time类型:典型格式  hh:mm:ss
    时间类型:-838:59:59-----à838:59:59
     
    Datetime类型:典型格式:1989-05-06  14:32:08
    日期时间类型:范围:1000-01-01 00:00:00  ---à9999-12-31    23:59:59
     
    注意:
    在开发中,很少用日期时间类型来表示一个需要的精确到秒的列。
    原因:虽然日期时间类型能精确到秒,而且方便查看,但是..........
    所以通常是用时间戳来表示
     
    时间戳:用int来存储
    1970-01-01 00:00:00到当前的秒数。
    一般存注册时间,商品发布时间等,并不是用datetime存储,而是用时间戳。
    因为datetime虽然直观,但计算不便。
     
    而用int型  存储时间戳,方便计算,对于显示来说,也可以方便的格式化。
  • 相关阅读:
    NIO 学习笔记
    Spring Boot 学习笔记
    Java集合框架
    StringBuffer&StringBuilder类
    String 类
    Java 重写 hashCode() 和 equals() 方法
    Java 基本数据类型 && 位运算
    [SequenceFile_1] Hadoop 序列文件
    Windows 下端口被占用
    Java 反射机制
  • 原文地址:https://www.cnblogs.com/steven9898/p/11339390.html
Copyright © 2011-2022 走看看