mysql与oracle 表字段定义比较 说明 mysql oracle VARCHAR 变长字符串 VARCHAR[0-65535] 定义长度默认按字符长度计算,如果是 GBK 编码的汉字将占用 2 个字节 VARCHAR2[1-4000] VARCHAR 是 VARCHAR2 的同义词 定义默认按字节长度计算 TINYINT SMALLINT MEDIU
mysql与oracle 表字段定义比较
|
说明 |
mysql |
oracle |
VARCHAR |
变长字符串 |
VARCHAR[0-65535] 定义长度默认按字符长度计算,如果是GBK编码的汉字将占用2个字节 |
VARCHAR2[1-4000] 定义默认按字节长度计算 |
TINYINT SMALLINT MEDIUMINT INT |
整数 |
TINYINT(-128-127) SMALLINT(-32768-32767) MEDIUMINT(-8388608-8388607) INT(-2147483648-2147483647) |
无专用类型, TINYINT可以用NUMBER(3,0)代替 SMALLINT可以用NUMBER(5,0)代替 MEDUIMINT可以用NUMBER(7,0)代替 INT可以用NUMBER(10,0)代替 BIGINT可以用NUMBER(20,0)代替 ORACLE中有SMALLINT,INT,INTEGER类型,不过这是NUMBER(38,0)的同义词 |
DECIMAL |
数值类型 |
DECIMAL[1-65[,0-30]] |
NUMBER 可表示数范围: 1*10^-130至1*10^126 NUMBER([1-38][,-84-127])
DECIMAL、NUMERIC、DEC是NUMBER的同义词 |
FLOAT |
浮点型 |
FLOAT(D,M) |
oracle10g开始增加BINARY_FLOAT类型 10g以前无专用类型,可以用NUMBER代替 ORACLE中有FLOAT和REAL类型,不过这是NUMBER的同义词 |
DOUBLE |
双精度浮点型 |
DOUBLE(D,M) |
oracle10g开始增加BINARY_DOUBLE类型 10g以前无专用类型,可以用NUMBER代替 ORACLE中有DOUBLE PRECISION类型,不过这是NUMBER的同义词 |
BIT |
位类型 |
BIT(1-64) |
无 |
DATETIME |
日期类型 |
DATE,3字节存储,只存储日期,没有时间,支持范围是[1000-01-01]至[9999-12-31] |
DATE类型 |
TIMESTAMP |
高精度日期 |
5.6.4以前不支持小数秒精度 |
TIMESTAMP[0-9] |
YEAR |
年份 |
YEAR,1字节存储,只存储年份,支持范围是[1901]至[2155] |
无对应类型,可以用NUMBER(3,0)代替 |
CHAR |
定长字符串 |
CHAR[0-255],定义长度默认按字符长度计算,最大保存255字符 |
CHAR[1-2000] 定义默认按字节长度计算 |
UNSIGNED |
无符号说明 |
支持,用于数值类型 |
不支持 |
CLOB |
大字符串,一般用于存储文本文件或超大描述及备注类信息 |
TINYTEXT 最大支持255个字节 |
支持(CLOB) oracle10g开始最大支持4GB个数据块,数据块大小为2KB-32KB oracle还有一个LONG类型,是早期的存储大字符串类型,最大支持2GB字节,现已不推荐使用 |
BLOB |
大二进制对象,一般用于存储文件或图片数据 |
TINYBLOB 最大支持255个字节 LONGBLOB最大支持4GB字节
字段不支持默认值 |
支持(BLOB) oracle10g以前最大支持4GB个字节 oracle10g开始最大支持4G个数据块,数据块大小为2KB-32KB oracle还有一个LONG RAW类型,是早期的存储二进制类型,最大支持2GB字节,现已不推荐使用 |
BINARY |
二进制信息 |
BINARY(0-255),定长 |
RAW(1-2000) |
ENUM |
枚举类型 |
ENUM(v1,v2,v3,...),最多65535个元素 |
不支持 |
SET |
集合类型 |
SET(v1,v2,v3,...),最多64个元素 |
不支持 |
NATIONAL CHAR |
国际化字符集类型,较少使用 |
无,MYSQL可以对每个字段指定字符编码 |
支持 |
BFILE |
外部文件指针类型 |
不支持 |
支持 |
自定义数据类型 |
|
不支持 |
支持 |
XML类型 |
|
不支持 |
支持 |
自增类型 |
自动增长类型 |
支持 |
不支持 |
字段默认值表达式 |
|
不支持函数和表达式 |
支持函数和表达式 |
字段顺序修改 |
|
支持,例如,把emp表的id字段顺序放在name字段后面: |
不支持,只能重建表或字段 |
虚拟字段 |
虚拟字段是一个逻辑字段定义,其结果值通常是一个表达式,并在表中存储物理值,不占用空间,主要用于简化查询逻辑。比如有一个商品销售表有单价和数量两个字段,那可以建一个虚拟字段金额,其表达式=单价*数量 |
不支持 |
11g支持,例: |
表字段数限制 |
|
INNODB 最大1000个字段 |
最大1000个字段 |
我的新浪微博: http://weibo.com/yzsind