zoukankan      html  css  js  c++  java
  • mysql类型参照

    mysql数据库内容总结

    数字类型:

    Tinyint(M) unsigned zerofull

         1个字节 默认的是有符号的-128~127

         unsigned: 无符号整数 范围0~255

         M: 代表宽度 (在zerofull时才有意义),只是一个显示效果,不会影响到实际的数据长度

         zerofull: 零填充(如果某列是zerofull默认就是unsigned) 因为不会有 0000-1 的情况

         零填充(例: 0005,多少个零就是M限制宽度)

         列一般不要为null

              原因一,null不好比较(等号比较不可用,只可用is null 或 is not null);

              原因二,null执行效率更低,可用not null default 0 指定默认值

    Smallint 同tinyInt用法

         2个字节 默认有符号范围-32768~32767; 无符号范围0~65535

    Mediumint 同tinyInt用法

         3个字节 默认有符号范围-8388608~8388607;无符号范围0~16777215

    Int 同tinyInt用法

         4个字节 默认有符号范围-2147483648~2147483647; 无符号范围0~4294967295

    BigInt 同tinyInt用法

         8个字节 默认有符号范围-9223372036854775808-9223372036854775807;无符号范围0~18446744073709551615

    Float(m,d) 浮点型 

         四个字节

         float(6, 2)表示共有六位(不加小数点),小数占两位.

         mysql中可以指定小数位数,sql server和oracle中是不允许指定小数位数的

    Double(m,d) 浮点型 

         八个字节

         double(6, 2)表示共有六位(不加小数点),小数占两位.

         mysql中可以指定小数位数,sql server和oracle中是不允许指定小数位数的

    Decimal(m,d) 定点型

         使用同浮点型,只是更精确。

         例:float(9,2) decimal(9,2) 存入1234567.23,float会显示为1234567.25,而decimal会显示1234567.23,更精确。

         浮点和定点型是四个字节或八个字节

    文本类型:

    Char char(M),M代表宽度 0 到 255个字符之间

         ,可容纳的字符数(不是字节,一个字节占八位,一个汉字占两个字节,utf-8的汉字占三个字节),char(8),可存放八个汉字

    Varchar 变长 varchar(M) M代表宽度 0 到 65535个字节之间, 大约能存放22000个汉字左右

         有1-2个字节来标记真实的长度

         Char和Varchar区别:

         1、char是定长,varchar是变长

         2、char的最大的存储长度是255个字符,这与字符集的设置没有关系;而varchar的最大长度则是与字符集的设置有关的

              因此,如果设置的字符集为

              latin1:一个字符是一个字节 ----->则能够存储的最大字符数是65532个

              gbk:一个字符是两个字节------->则能够存储的最大字符数是65532/2个

              utf-8:一个字符是三个字节------->则能够存储的最大字符数是65532/3个

              char定长:M个字符,如果存的小于M个字符,实占M个字符,用空格补齐

              varchar变长:M个字符,存的小于M个字符,设为N,N <= M,实占N个字符

         3、利用率

              类型          宽度     可存字符     实存字符(i<=M)实占空间利用率

              char(M)  M          M               i                    M                         i/M <= 100%

              varchar         M          M               i                    i字符+(1-2)字节          i/(i + 1-2) <= 100%

              char有可能等于百分百,例: 四位学号char(4),利用率为100%;varchar利用率永远小于100%

         4、char的速度快于varchar

    text:是文本类型 能够存储比较大的数据 但是搜索的速度比较慢,没有全文索引    没有宽度 加了也没用

        因此 如果不是比较大的数据 则建议采用char或者varchar来进行查询

    日期类型:

         年               year

         日期          date

         时间          time

         日期时间     dateTime

         时间戳          timeStamp

         year类型 一个字节 表示 1901-2155[0000,表示错误时选择]

              如果输入2位,'00-69' 表示 2000-2069年 加2000 计算机的元年是从1970年开始

                             '70-99' 表示 1970-1999年 加1900

              推荐输入四位

         Date类型 典型格式 1992-08-12

              存储的范围:'1000-01-01'-->'9999-12-31'

         time时间类型 典型格式 hh-mm-ss

              存储的范围: '-838:59:59'-->'838:59:59'

         dateTime日期时间类型 典型格式 '1992-09-28 12:23:23'

              存储的范围: '1000-01-01 00:00:00'-->'9999-12-31 23:59:59'

         timeStamp时间戳类型

              是1970-01-01:00:00:00,到当前的秒数

              计算很精确,也可以方便的格式化

    注意:真正开发中,很少用日期时间类型来表示一个需要精确到秒的列,而是用时间戳类型来表示

    原因:虽然日期时间类型能精确到秒,并且方便查看,但是遇到边界日期计算时很麻烦,不精确,像平年和闰年2月

  • 相关阅读:
    oracle之同义词
    oracle之序列
    oracle之视图
    oracle表空间
    oracle 闪回技术
    oracle权限管理
    oracle的undo表空间
    创建数据库之间的连接
    oracle监听
    oracle11g文件系统库迁移到ASM库上面
  • 原文地址:https://www.cnblogs.com/DreamFather/p/11326775.html
Copyright © 2011-2022 走看看