ITPub博客

首页 > 数据库 > Oracle > SQL Server与oracle两者区别之数据类型区别

SQL Server与oracle两者区别之数据类型区别

Oracle 作者:sunflowersmphk 时间:2013-01-17 13:23:34 0 删除 编辑

类型名称

Oracle

SQLServer

   比较

字符数据类型   CHAR   CHAR :都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb

变长字符数据类型   VARCHAR2   VARCHAR   :racle里面最大长度为4kb,SQLServer里面最大长度为8kb

根据字符集而定的固定长度字符串   NCHAR :NCHAR   前者最大长度2kb后者最大长度4kb

根据字符集而定的可变长度字符串   NVARCHAR2   NVARCHAR   :者最大长度都为4kb

日期和时间数据类型   DATE   有Datetime和Smalldatetime两种   在oracle里面格式为DMY在SQLSerser里面可以调节,默认的为MDY

数字类型   NUMBER(P,S)   NUMERIC[P(,S)] :Oracle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

数字类型   DECIMAL(P,S)   DECIMAL[P(,S)]   :racle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。  

整数类型   INTEGER   INT   同为整数类型,存储大小都为4个字节

浮点数类型   FLOAT   FLOAT

实数类型   REAL   REAL

 

 

ORACLE的数据类型

常用的数据库字段类型如下:

 

字段类型           中文说明          限制条件         其它说明

CHAR         固定长度字符串    最大长度2000 bytes

VARCHAR2    可变长度的字符串   最大长度4000 bytes    可做索引的最大长度749

NCHAR      根据字符集而定的固定长度字符串 最大长度2000 bytes

NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes

DATE        日期(日-月-年)   DD-MM-YY(HH-MI-SS)

LONG        可变长度的字符数据 最大长度2G(231-1)足够存储大部头著作

RAW      固定长度二进制数据   最大长度2000 bytes 可存放比较小的多媒体图象声音等

LONG RAW 可变长度的二进制数据 最大长度2G 可存放比较大的多媒体图象声音等

BLOB     大型的二进制对象(可变长度)最大长度4G

CLOB     大型的CHAR类型数据

NCLOB    大型的NCHAR类型数据

BFILE    存放在数据库外的大型的二进制文件

ROWID   数据表中记录的唯一行号10 bytes ********.****.****格式,*为0或1,存储在索引中。

UROWID 同上 存储在索引中

NROWID   二进制数据表中记录的唯一行号 最大长度4000 bytes

NUMBER(P,S) 数字类型   P为总的位数,S为小数位

DECIMAL(P,S) 数字类型P为总的位数,S为小数位

INTEGER      整数类型 的整数

FLOAT        浮点数类型

NUMBER(38),双精度

REAL   实数类型

NUMBER(63),精度更高

 

注意:每个表中只能有一个LONG或LONG RAW列,……….。

 

Oracle

 

Microsoft SQL Server

 

CHAR

 

建议使用 char。因为 char 类型的列使用固定的存储长度,所以,访问时比 varchar 列要快一些。

 

VARCHAR2

和 LONG

 

varchar 或 text。(如果 Oracle 列中数据值的长度为 8000 字节或更少,则使用 varchar;否则,必须使用 text。)

 

RAW 和

LONG RAW

 

varbinary 或 image。(如果 Oracle 列中数据值的长度为 8000 字节或更少,则使用 varbinary;否则,必须使用 image。)

 

NUMBER

 

如果整数在 1 和 255 之间,使用 tinyint。

如果整数在 -32768 和 32767 之间,使用 smallint。

如果整数在 -2,147,483,648 和 2,147,483,647 之间,则使用 int。

如果需要浮点类型数,使用 numeric(有精度和小数位)。

注意:不要使用 float 或 real,因为可能会产生舍入(Oracle NUMBER 和 SQL Server numeric 均不舍入)。

如果不确定,则使用 numeric;它最接近 Oracle NUMBER 数据类型。

 

ROWID

 

使用 identity 列类型。

 

CURRVAL, NEXTVAL

 

使用 identity 列类型以及 @@IDENTITY、IDENT_SEED() 和 IDENT_INCR() 函数。

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22132620/viewspace-1115701/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-17