前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle 与 MySQL 的差异分析(2):数据类型

Oracle 与 MySQL 的差异分析(2):数据类型

作者头像
一头小山猪
发布2020-04-10 16:18:31
2.2K0
发布2020-04-10 16:18:31
举报
文章被收录于专栏:微光点亮星辰微光点亮星辰

Oracle 与 MySQL 的差异分析(2):数据类型

1.1 整数

在Oracle中,一般使用 integer、 int或者 number(N),MySQL 也支持 integer 和 int,但不支持 number 或 number(N) 的类型。

MySQL 支持的整数类型如下,其中 amsllint 和 int(与 integer 等价)是标准定义,在 Oracle 中也支持,其他类型 Oracle 不支持。

在 MySQL 中可以用 decimal(3) 定义三位整数,等价于 Oracle 的 number(3),其实 Oracle 中的 decimal(3) 和 number(3) 也是等价的。

在 MySQL 中还可能看到 int(N) 这种定义方式,这里的 N 只影响显示宽度,当制定 zerofill 时,可以在展示时左补零。

1.2 浮点数

在 Oracle 中一般使用 number(5,2) 这种方式,表示小数位为两位,整数位最多三位。在 MySQL 中可以使用decimal(5,2),其实在 Oracle 中也可以用 decimal(5,2),它与 number(5,2) 是等价的。除此之外,MySQL 还支持 float(Oracle 也支持)和 double 类型。

1.3 字符串

在 Oracle 中,字符串一般用 varchar2(N) 来定义字符串类型,如果是表字段的话,它的最大长度是4000,varchar2 是变长类型,占用的空间由插入的数据决定,还可用 char(N) 来表示定长类型,不过一般很少用。

MySQL 支持 char 和 varchar,但不支持 varchar2,varchar2 是 Oracle 自定义的类型。char 的最大长度是255,varchar 的最大长度是 65535,这一点比 Oracle 好,Oracle 表字段的长度超过4000就要用 clob 类型了。除了 char 和 varchar,MySQL 还支持其他字符串类型:

需要注意 varchar2(N) 在 Oracle 中的 N 表示最大字节数,而 MySQL 的 varchar(N) 表示最大字符数。在 Oracle 需要使用 varchar2(N char) 才表示最大字符数是 N。

1.4 日期类型

在 Oracle 中,时间和日期类型使用 date,如果要精确到毫秒还可以使用 timestamp。在 MySQL 中,date 类型仅表示日期,不包含时分秒,而 time 类型只有时分秒。

如果要在 MySQL 中实现 Oracle 的 date 类型,既有日期又有时分秒,可以使用 datetime 或 timestamp,其中 timestamp 可以表示的范围比较小并且受时区影响。MySQL 还支持 year 类型表示年,可以更省空间。MySQL 的时间类型都不支持毫秒。

1.5 枚举类型

MySQL 中特有的类型,可以指定列的取值,比如可以指定性别的取值,如:

create table t_test_1(gender enum(‘M’,’F’));

对比这种列,如果插入的值不是定义的枚举值也不是 null,那么会自动转换成第一个枚举值,不区分大小写。

1.6 集合类型

集合类型也是 MySQL 特有的类型,它表示数据只能是指定元素的组合,如:

create table t_test_1(col set(‘a’, ‘b’,‘c’));

这个列可以插入‘a, b’,’a, c’,但是不能插入 abc 以外的字符,如果插入的数据有重复会自动去重,如插入‘b, a, b’,实际会转换成‘a, b’。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微光点亮星辰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档