Oralce
字段
|
注意事项
|
Date
|
|
Varchar2(n)
|
N<=4000
|
Long
|
N<=2G
|
Row & long row
|
N<=255
|
Blob
|
N<=4G
|
Clob
|
N<=4G
|
Nclob
|
N<=4G
|
Number
|
|
DB2
字段
|
注意事项
|
DATE TIME
TIMESTAMPl
|
如果只使用MM/DD/YYY,那么使用DATE类型。
如果只使用HH:MM:SS, 那么使用TIME类型。
如果要使用日期和时间,则使用时间戳类型(TIMESTAMP)
可以使用Oracle中的TO_CHAR()函数来取DATE的字串来分别与DB2/400的DATE、TIME相匹配。
|
CHAR(n)
VARCHAR(n)
|
若n<=32766,则使用DB2/400中的CHAR类型、VARCHAR
|
VARCHAR(n)
CLOB(n)
|
若n<=32K,则使用DB2/400中的CHAR类型、VARCHAR。
若32K=< n <=2GB,则使用CLOB
|
CHAR(n) FOR BIT DATA
VARCHAR(n) FOR BIT DATA
BLOB(n)
|
若n<=32K, 则使用CHAR(n) FOR BIT DATA 或
VARCHAR(n) FOR BIT DATA
若n<=2GB, 则使用BLOB(n)
|
BLOB(n)
|
若n<=2GB, 则使用BLOB(n)
|
CLOB(n)
|
若n<=2GB, 则使用CLOB(n)
|
DBCLOB(n)
|
若n<=2GB, 则使用DBCLOB(n/2)
|
SMALLINT/INTEGER/BIGINT
DECIMAL(p,s)/NUMBER(p,s)
Float(n)/ REAL/DOUBLE
|
若Oracle中定义NUMBER(p) 或 NUMBER(p,s), 则使用SAMLLINT/INTEGER/BIGINT
若Oracle中定义NUMBER(p,s), 则使用DECIMAL(p,s)
若Oracle中定义NUMBER,则使用FLOAT(n)/REAL/DOUBLE
|
NUMBER
Oracle中的NUMBER类型可以对应DB2/400中的很多类型,这种对应关系要依赖于Oracle中number将用于保存何种类型的数据,是整型还是带有小数位的实型数据,另外还要考虑类型所占用的存储空间,例如:SAMLLINT占2 byte, INTEGER占4 byte; BIGINT占8 byte;Oracle中的NUMBER类型所占用的存储空间要根据它的定义而定,例如缺省精度下的NUMBER有38个数字长,占用20 byte的空间。具体的对应关系请参照上表。
ROW and LOB类型
DB2/400提供VARCHAR和CLOB与ORACLE中的RAW和LONG RAW相对应。ORACLE也支持大对象:BLOB、CLOB、CLOB和NCLOB, ORACLE中的BLOB和CLOB可以提供4GB的空间,而DB2/400中的BLOB和CLOB只能存放2GB的数据;DB2/400中的DBCLOB与ORACLE中的NCLOB 2GB相对应。Oracle 中的BFILE数据类型用于管理数据库以外的二进制数据,数据库中的表将指向数据库外部的存放的BFILE文件,DB2/400也提供一个类似的数据类型DATALINK相对应。
ROWID
Oracle ROWIND虚拟列用于对表中的某一列进行唯一标示,DB2/400中也有这样的数据类型ROWID,它与ORACLE中的ROWID的功能相似。DB2/400中的ROWID可以存放40 byte的数据用来唯一标示表中的每一行,它没有ccsid属性,这些信息中没有关于datafile、 block 或 row的信息。
例如:
CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE) ORDERNO的数据类型为ROWID,用于存放订单号,每当插入一行时,系统自动生成一个值,存放进这个字段。可以用OPERATION NAVIGATOR查看它的内容。
Character type
DB2/400的CHAR、VARCHAR类型与ORACLE中的VARCHAR2(n)类型相对应,但是ORACLE中的VARCHAR2(n)类型仅用于存放较小的字符串,这里的n小于4000,因此在这种情况下,最好用定长的CHAR(N)类型与ORACLE的VARCHAR2(n)相对应,这样不仅可以提高效率,还可以节省存储空间,若使用VARCHAR(n)类型最好用ALLOCATE参数,这样可以提高数据库的性能,它可以减少内存和硬盘之间的输入/输出操作。
要注意DB2/400中的字符串中文输入问题,要想在DB2/400上输入中文应用这样的SQL创建表,这里的CCSID 935,代表简体中文。
Sql sever
数据类型
|
类型
|
描 述
|
bit
|
整型
|
bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off
|
int
|
整型
|
int 数据类型可以存储从- 231(-2147483648)到231 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节
|
smallint
|
整型
|
smallint 数据类型可以存储从- 215(-32768)到215(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间
|
tinyint
|
整型
|
tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。 这种数据类型在数据库中占用1 个字节
|
numeric
|
精确数值型
|
numeric数据类型与decimal 型相同
|
decimal
|
精确数值型
|
decimal 数据类型能用来存储从-1038-1到1038-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数
|
money
|
货币型
|
money 数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一
|
smallmoney
|
货币型
|
smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之一
|
float
|
近似数值型
|
float 数据类型是一种近似数值类型,供浮点数使用。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表示。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数
|
real
|
近似数值型
|
real 数据类型像浮点数一样,是近似数值类型。它可以表示数值在-3.40E+38到3.40E+38之间的浮点数
|
datetime
|
日期时间型
|
datetime数据类型用来表示日期和时间。这种数据类型存储从1753年1月1日到9999年12月3 1日间所有的日期和时间数据, 精确到三百分之一秒或3.33毫秒
|
Smalldatetime
|
日期时间型
|
smalldatetime 数据类型用来表示从1900年1月1日到2079年6月6日间的日期和时间,精确到一分钟
|
cursor
|
特殊数据型
|
cursor 数据类型是一种特殊的数据类型,它包含一个对游标的引用。这种数据类型用在存储过程中,而且创建表时不能用
|
timestamp
|
特殊数据型
|
timestamp 数据类型是一种特殊的数据类型,用来创建一个数据库范围内的唯一数码。 一个表中只能有一个timestamp列。每次插入或修改一行时,timestamp列的值都会改变。尽管它的名字中有“time”, 但timestamp列不是人们可识别的日期。在一个数据库里,timestamp值是唯一的
|
Uniqueidentifier
|
特殊数据型
|
Uniqueidentifier数据类型用来存储一个全局唯一标识符,即GUID。GUID确实是全局唯一的。这个数几乎没有机会在另一个系统中被重建。可以使用NEWID 函数或转换一个字符串为唯一标识符来初始化具有唯一标识符的列
|
char
|
字符型
|
char数据类型用来存储指定长度的定长非统一编码型的数据。当定义一列为此类型时,你必须指定列长。当你总能知道要存储的数据的长度时,此数据类型很有用。例如,当你按邮政编码加4个字符格式来存储数据时,你知道总要用到10个字符。此数据类型的列宽最大为8000 个字符
|
varchar
|
字符型
|
varchar数据类型,同char类型一样,用来存储非统一编码型字符数据。与char 型不一样,此数据类型为变长。当定义一列为该数据类型时,你要指定该列的最大长度。 它与char数据类型最大的区别是,存储的长度不是列长,而是数据的长度
|
text
|
字符型
|
text 数据类型用来存储大量的非统一编码型字符数据。这种数据类型最多可以有231-1或20亿个字符
|
nchar
|
统一编码字符型
|
nchar 数据类型用来存储定长统一编码字符型数据。统一编码用双字节结构来存储每个字符,而不是用单字节(普通文本中的情况)。它允许大量的扩展字符。此数据类型能存储4000种字符,使用的字节空间上增加了一倍
|
nvarchar
|
统一编码字符型
|
nvarchar 数据类型用作变长的统一编码字符型数据。此数据类型能存储4000种字符,使用的字节空间增加了一倍
|
ntext
|
统一编码字符型
|
ntext 数据类型用来存储大量的统一编码字符型数据。这种数据类型能存储230 -1或将近10亿个字符,且使用的字节空间增加了一倍
|
binary
|
二进制数据类型
|
binary数据类型用来存储可达8000 字节长的定长的二进制数据。当输入表的内容接近相同的长度时,你应该使用这种数据类型
|
varbinary
|
二进制数据类型
|
varbinary 数据类型用来存储可达8000 字节长的变长的二进制数据。当输入表的内容大小可变时,你应该使用这种数据类型
|
image
|
二进制数据类型
|
image 数据类型用来存储变长的二进制数据,最大可达231-1或大约20亿字节
|
Mysql
类型
|
说明
|
TINYINT
|
非常小的整数
|
SMALLINT
|
较小整数
|
MEDIUMINT
|
中等大小整数
|
INT
|
标准整数
|
BIGINT
|
较大整数
|
FLOAT
|
单精度浮点数
|
DOUBLE
|
双精度浮点数
|
DECIMAL
|
一个串的浮点数
|
类型说明
|
取值范围
|
TINYINT[(M)]
|
有符号值:-128 到127(- 27 到27 - 1)
无符号值:0到255(0 到28 - 1)
|
SMALLINT[(M)]
|
有符号值:-32768 到32767(- 215 到215 - 1)
无符号值:0到65535(0 到21 6 - 1)
|
MEDIUMINT[(M)]
|
有符号值:-8388608 到8388607(- 22 3 到22 3 - 1 )
无符号值:0到16777215(0 到22 4 - 1)
|
INT[(M)]
|
有符号值:-2147683648 到2147683647(- 231 到231- 1)
无符号值:0到4294967295(0 到232 - 1)
|
BIGINT[(M)]
|
有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1)
无符号值:0到18446744073709551615(0到264 – 1)
|
FLOAT[(M, D)]
|
最小非零值:±1.175494351E - 38
|
DOUBLE[(M,D)]
|
最小非零值:±2.2250738585072014E - 308
|
DECIMAL (M, D)
|
可变;其值的范围依赖于M 和D
|
类型说明
|
存储需求
|
TINYINT[(M)]
|
1字节
|
SMALLINT[(M)]
|
2字节
|
MEDIUMINT[(M)]
|
3字节
|
INT[(M)]
|
4字节
|
BIGINT[(M)]
|
8字节
|
FLOAT[(M, D)]
|
4字节
|
DOUBLE[(M, D)]
|
8字节
|
DECIMAL (M, D)
|
M字节(MySQL < 3.23),M+2字节(MySQL > 3.23 )
|
数值类型
类型名
|
说明
|
CHAR
|
定长字符串
|
VARCHAR
|
可变长字符串
|
TINYBLOB
|
非常小的BLOB(二进制大对象)
|
BLOB
|
小BLOB
|
MEDIUMBLOB
|
中等的BLOB
|
LONGBLOB
|
大BLOB
|
TINYTEXT
|
非常小的文本串
|
TEXT
|
小文本串
|
MEDIUMTEXT
|
中等文本串
|
LONGTEXT
|
大文本串
|
ENUM
|
枚举;列可赋予某个枚举成员
|
SET
|
集合;列可赋予多个集合成员
|
类型说明
|
最大尺寸
|
存储需求
|
CHAR( M)
|
M 字节
|
M 字节
|
VARCHAR(M)
|
M 字节
|
L + 1字节
|
TINYBLOB, TINYTEXT
|
28- 1字节
|
L + 1字节
|
BLOB, TEXT
|
216 - 1 字节
|
L + 2字节
|
MEDIUMBLOB, MEDIUMTEXT
|
224- 1字节
|
L + 3字节
|
LONGBLOB, LONGTEXT
|
232- 1字节
|
L + 4字节
|
ENUM(“value1”, “value2”, ...)
|
65535 个成员
|
1 或2字节
|
SET (“value1”, “value2”, ...)
|
64个成员
|
1、2、3、4 或8字节
|
字符串类型
类型名
|
说明
|
DATE
|
“YYYY-MM-DD”格式表示的日期值
|
TIME
|
“hh:mm:ss”格式表示的时间值
|
DATETIME
|
“YYYY-MM-DD hh:mm:ss”格式
|
TIMESTAMP
|
“YYYYMMDDhhmmss”格式表示的时间戳值
|
YEAR
|
“YYYY”格式的年份值
|
类型名
|
取值范围
|
存储需求
|
DATE
|
“1000-01-01”到“9999-12-31”
|
3字节
|
TIME
|
“-838:59:59”到“838:59:59”
|
3字节
|
DATETIME
|
“1000-01-01 00:00:00” 到“9999-12-31 23:59:59”
|
8字节
|
TIMESTAMP
|
19700101000000 到2037 年的某个时刻
|
4字节
|
YEAR
|
1901 到2155
|
1字节
|
日期类型