zoukankan      html  css  js  c++  java
  • Oracle、SQL Server、MySQL数据类型对比

    1,标准SQL数据类型

     

    BINARY 每个字符占一个字节 任何类型的数据都可存储在这种类型的字段中。不需数据转换(例如,转换到文本数据)。数据输入二进制字段的方式决定了它的输出方式。
    BIT 1 个字节0 和 1 ,以及只包含这两个数值之一的字段。
    TINYINT 1 个字节 介于 0 到 255 之间的整型数。
    MONEY 8 个字节 介于 – 922,337,203,685,477.5808 到 922,337,203,685,477.5807 之间的符号整数。
    DATETIME 8 个字节 介于 100 到 9999 年的日期或时间数值。
    UNIQUEIDENTIFIER 128 个位 用于远程过程调用的唯一识别数字。
    REAL 4 个字节单精度浮点数,负数范围是从 –3.402823E38 到 –1.401298E-45,正数从1.401298E-45 到 3.402823E38,和 0。
    SMALLINT 2 个字节 介于 –32,768 到 32,767 的短整型数。
    INTEGER 4 个字节介于 –2,147,483,648 到 2,147,483,647 的长整型数。
    DECIMAL 17 个字节容纳从 1028 - 1到 - 1028 - 1. 的值的精确的数字数据类型。你可以定义精度 (1 - 28) 和 符号 (0 - 定义精度)。缺省精度和符号分别是18和0。
    TEXT 每一字符两字节(参见注意) 从零到最大 2.14 千兆字节。
    IMAGE 视实际需要而定 从零到最大 2.14 千兆字节。用于 OLE 对象。
    CHARACTER 每一字符两字节(参见注意) 长度从 0 到 255 个字符。

     

    2,Oracle数据类型

     

    类型 含义 存储描述 备注
    CHAR 固定长度字符串 最大长度2000bytes  
    VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749
    NCHAR 根据字符集而定的固定长度字符串 最大长度2000bytes  
    NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000bytes  
    DATE 日期(日--年) DD-MM-YY(HH-MI-SS),经过严格测试,无千虫问题  
    TIMESTAMP 日期(日--年) DD-MM-YY(HH-MI-SS:FF3),经过严格测试,无千虫问题 DATE相比较,TIMESTAMP有小数位秒信息
    LONG 超长字符串 最大长度2G,足够存储大部头著作  
    RAW 固定长度的二进制数据 最大长度2000bytes 可存放多媒体图象声音等
    LONG RAW 可变长度的二进制数据 最大长度2G 可存放多媒体图象声音等
    BLOB 二进制数据 最大长度4G  
    CLOB 字符数据 最大长度4G  
    NCLOB 根据字符集而定的字符数据 最大长度4G  
    BFILE 存放在数据库外的二进制数据 最大长度4G  
    ROWID 数据表中记录的唯一行号 10bytes ********.****.****格式,*01
    NROWID 二进制数据表中记录的唯一行号 最大长度4000bytes  
    NUMBER(P,S) 数字类型 P为整数位,S为小数位  
    DECIMAL(P,S) 数字类型 P为整数位,S为小数位  
    INTEGER 整数类型 小的整数  
    FLOAT 浮点数类型 NUMBER(38),双精度  
    REAL 实数类型 NUMBER(63),精度更

     

    3,SQL Server数据类型

     

    第一大类:整数数据

    bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte.
    int:以4个字节来存储正负数.可存储范围为:-2^31至2^31-1.
    smallint:以2个字节来存储正负数.存储范围为:-2^15至2^15-1
    tinyint: 是最小的整数类型,仅用1字节,范围:0至此^8-1


    第二大类:精确数值数据

    numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化.
    decimal:和numeric差不多


    第三大类:近似浮点数值数据

    float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1.79E+308.
    real:位数为24,用4个字节,数字范围:-3.04E+38至3.04E+38


    第四大类:日期时间数据

    datatime:表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节.
    smalldatetime:表示时间范围可以表示从1900/1/1至2079/12/31.使用4个字节.


    第五大类:字符串数据

    char:长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上.
    varchar:长度也是设定的,最短为1字节,最长为8000个字节,尾部的空白会去掉.
    text:长宽也是设定的,最长可以存放2G的数据.


    第六大类:Unincode字符串数据

    nchar:长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节.
    nvarchar:长度是设定的,最短为1字节,最长为4000个字节.尾部的空白会去掉.储存一个字符需要2个字节.
    ntext:长度是设定的,最短为1字节,最长为2G.尾部的空白会去掉,储存一个字符需要2个字节.


    第七大类:货币数据类型

    money:记录金额范围为:-92233720368577.5808至92233720368577.5807.需要8 个字节.
    smallmoney:记录金额范围为:-214748.3648至214748.36487.需要4个字节.


    第八大类:标记数据

    timestamp:该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新.
    uniqueidentifier:用于识别数据库里面许多个表的唯一一个记录.


    第九大类:二进制码字符串数据

    binary:固定长度的二进制码字符串字段,最短为1,最长为8000.
    varbinary:与binary差异为数据尾部是00时,varbinary会将其去掉
    image:为可变长度的二进制码字符串,最长2G.

    4,MySQL数据类型

     

    1、整型

    MySQL数据类型 含义(有符号)
    tinyint(m) 1个字节 范围(-128~127)
    smallint(m) 2个字节 范围(-32768~32767)
    mediumint(m) 3个字节 范围(-8388608~8388607)
    int(m) 4个字节 范围(-2147483648~2147483647)
    bigint(m) 8个字节 范围(+-9.22*10的18次方)

     

    取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。
    int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围。

     

    MySQL可以为整型类型指定宽度,例如Int(11),对绝大多数应用这是没有意义的:它不会限制值的合法范围,只是规定了MySQL的一些交互工具(例如MySQL命令行客户端)用来显示字符的个数。对于存储和计算来说,Int(1)和Int(20)是相同的。)

    2、浮点型(float和double)

    MySQL数据类型 含义
    float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位
    double(m,d) 双精度浮点型 16位精度(8字节) m总个数,d小数位

    设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。

    3、定点数

     

    浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
    decimal(m,d) 参数m<65 是总个数,d<30且 d<m 是小数位。

     

    MySQL5.0和更高版本将数字打包保存到一个二进制字符串中(每4个直接存9个数字)。例如,decimal(18,9)小数点两边将各存储9个数字,一共使用9个字节:小数点前的数字用4个字节,小数点后的数字用4个字节,小数点本身占1个字节。

    浮点类型在存储同样范围的值时,通常比decimal使用更少的空间。float使用4个字节存储。double占用8个字节。

    因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时才使用decimal——例如存储财务数据。但在数据量比较大的时候,可以考虑使用bigint代替decimal。

    4、字符串(char,varchar,_text)

    MySQL数据类型 含义
    char(n) 固定长度,最多255个字符
    varchar(n) 固定长度,最多65535个字符
    tinytext 可变长度,最多255个字符
    text 可变长度,最多65535个字符
    mediumtext 可变长度,最多2的24次方-1个字符
    longtext 可变长度,最多2的32次方-1个字符

     

    char和varchar:
    1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
    2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n< n>255),所以varchar(4),存入3个字符将占用4个字节。
    3.char类型的字符串检索速度要比varchar类型的快。
     
    varchar和text:
    1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n< n>255),text是实际字符数+2个字节。
    2.text类型不能有默认值。
    3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

     

    5.二进制数据(_Blob)

     

    1._BLOB和_text存储方式不同,_TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。
    2._BLOB存储的数据只能整体读出。
    3._TEXT可以指定字符集,_BLO不用指定字符集。

     

    6.日期时间类型 

    MySQL数据类型 含义
    date 日期 '2008-12-2'
    time 时间 '12:25:36'
    datetime 日期时间 '2008-12-2 22:06:44'
    timestamp 自动存储记录修改时间

    若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

     

  • 相关阅读:
    Dom对象,控制html元素
    运算符总结
    数组
    变量命名规则
    css实现气泡说明框
    深入理解CSS中的层叠上下文和层叠顺序
    jquery书写
    二级导航
    iis配置
    Android ListView无法触发ItemClick事件
  • 原文地址:https://www.cnblogs.com/guanghe/p/6054129.html
Copyright © 2011-2022 走看看