DB2与mysql的具体区别
如果⼩数精度⼤于31,那么迁移⼯具将列转换为双精度数据类型。
⾃动递增的列迁移为数值数据类型并使⽤IDENTITY ⼦句。
中,DECIMAL 的最⼤位数是65,⽀持的最⼤⼩数位是30。如果为DECIMAL 指定UNSIGNED ,那么不允许负数。时间戳列不⽀持毫秒。
表3. MySQL 数据类型
数据类型
说明
BIT 固定长度的位串。
BOOLEAN 存储逻辑布尔值(true/false/unknown ),可以是TRUE 、true 和1;FALSE 、false 和0。TINYBLOB ⽤于存储⼆进制对象(⽐如图形)的原始⼆进制数据,最⼤255字节。BLOB
⽤于存储⼆进制对象(⽐如图形)的原始⼆进制数据,最⼤65,535字节。MEDIUMBLOB ⽤于存储⼆进制对象(⽐如图形)的原始⼆进制数据,最⼤16,777,215字节。LONGBLOB ⽤于存储⼆进制对象(⽐如图形)的原始⼆进制数据,最⼤4GB 。CHAR(n)
CHARACTER(n)包含固定长度的字符串,⽤空格填充到长度n 。DATE ⽤3字节的存储空间存储⽇历⽇期(年、⽉、⽇)。DATETIME ⽤8字节的存储空间存储⽇历⽇期和天内的时间。YEAR ⽤1字节的存储空间存储两位或四位格式的年份。
DECIMAL(p,s)NUMERIC(p,s)存储精确的数值,精度(p )最⾼为65,刻度(s )为30或更⾼。
FLOAT 存储浮点数,限制由硬件决定。单精度浮点数精确到⼤约7位⼩数。UNSIGNED 属性不允许负数。
DOUBLE REAL 存储双精度浮点数,限制由硬件决定。双精度浮点数精确到⼤约15位⼩数。UNSIGNED 属性不允许负数。
TINYINT 存储有符号或⽆符号1字节整数。SMALLINT 存储有符号或⽆符号2字节整数。MEDIUMINT 存储有符号或⽆符号3字节整数。INTEGER 存储有符号或⽆符号4字节整数。BIGINT 存储有符号或⽆符号8字节整数。TINYTEXT ⽤于存储最多255字节的字符串数据。TEXT
⽤于存储最多65,535字节的字符串数据。MEDIUMTEXT ⽤于存储最多16,777,215字节的字符串数据。LONGTEXT ⽤于存储最多4GB 的字符串数据。TIME ⽤3字节的存储空间存储天内的时间。
TIMESTAMP
⽤4字节的存储空间存储⽇期和时间。如果没有提供有效值的话,TIMESTAMP 列会⾃动设置为最近操作的⽇期和时间。
VARCHAR(n)
CHARACTER VARYING(n)CHARACTER VARYING 存储长度可变的字符串,最⼤长度由n 指定。末尾的空格不存储。
ENUM ⼀种串对象,它的值只能是从值列表 ‘value1’, ‘value2’, ..., NULL 中选择的⼀个值。
SET ⼀种串对象,它可以具有零个或更多的值,这些值必须从值列表 ‘value1’, ‘value2’, ...中选择。BINARY 与CHAR 类型相似,但是存储⼆进制字节串⽽不是字符串。VARBINARY
与VARCHAR 类型相似,但是存储⼆进制字节串⽽不是字符串。
表4. MySQL 数据类型到DB2的映射
MYSQL
DB2
说明
BIT CHAR(n) FOR BIT DATA 关于⽤来简化迁移的UDF 的细节,请参阅。BOOLEAN SMALLINT 或CHAR(1)
使⽤检查约束来实施规则。
TINYBLOB VARCHAR(255) FOR BIT DATA 可以使⽤BLOB(255)或VARCHAR(255) FOR BIT DATA 。在这种情况下,使⽤VARCHAR 效率⽐较⾼。
字符串长度和字节BLOB
BLOB(64K)如果长度⼩于32K ,那么考虑使⽤VARCHAR(n) FOR BIT DATA 。MEDIUMBLOB BLOB(16M)可以使⽤NOT LOGGED 改进性能。LONGBLOB BLOB(2G)⽀持的BLOB 最⼤长度是2GB 。CHAR(n)
CHARACTER(n)
CHAR(n)
CHARACTER(n)
在DB2中,‘n’的最⼤值为254。
DATE DATE-
DATETIME TIMESTAMP可以使⽤特殊寄存器CURRENT TIMEZONE对⽇期进⾏转换。YEAR SMALLINT可以使⽤检查约束实施YEAR规则。
DECIMAL(p,s) NUMERIC(p,s)DECIMAL(p,s)
NUMERIC(p,s)如果p⼤于31,那么使⽤DOUBLE。
FLOAT REAL_
DOUBLE
REAL
DOUBLE_
SMALLINT SMALLINT使⽤检查约束限制值⼩于256。SMALLINT SMALLINT_
MEDIUMINT INTEGER如果需要,使⽤检查约束限制最⼤长度。
INTEGER INTEGER
INT
_
BIGINT BIGINT_
TINYTEXT VARCHAR(255)对于少于32K的数据,使⽤VARCHAR⽐较⾼效。
TEXT CLOB(64K)DB2允许为CLOB或BLOB指定长度参数。指定需要的长度,⽽不要使⽤TINY、MEDIUM或LONG CLOB。
MEDIUMTEXT CLOB(16M)_
LONGTEXT CLOB(2G)最⼤长度是2GB。如果使⽤LOGGED,那么BLOB或CLOB的最⼤长度
为1GB。使⽤NOT LOGGED选项可以提⾼性能。
TIME TIME_
TIMESTAMP TIMESTAMP_
VARCHAR(n) CHARACTER VARYING(n)VARCHAR(n)
CHARACTER VARYING(n)如果长度⼩于32K,那么使⽤VARCHAR。
ENUM VARCHAR(n)使⽤检查约束来实施规则。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论