实践总结: mysql到oracle的一些开发区别

最近与某行合作, 必须用oracle, 几年没用了, 于是经历了mysql到oracle开发上的一些转换, 简单总结一下:

1, 数据类型

oracle比mysql粗放, 比如mysql的tinyint、bigint、bigdecimal, 在oracle下只能用NUMBER类型来表示了.

2, 空值null和''

oracle下null和''是等同的, mysql下两者不等同.

3, 自增主键 

oracle没有自增主键, 不过可以通过“序列+触发器”的方式实现.

4, 日期类型的字段严谨性

mysql下日期格式的字符串可以直接赋值给日期类型, 而oracle下字符串必须显示转换成日期类型.

5, 时间戳自动赋值/更新

mysql的timestamp类型可以实现自动赋值/更新, oracle没这个类型和功能.

6, 单引号、双引号

mysql下字符串的值, 用'' 和"" 都可以, 而oracle字符串的值,只能用单引号''.

7, 分页

mysql的limit很方便, oracle则必须借助rownum,而且rownum只适用<=, 因此就有了下面这种臃肿的分页

SELECT * FROM 
(
SELECT A.*, ROWNUM RN 
FROM (SELECT * FROM TABLE_NAME) A 
WHERE ROWNUM <= 20
)
WHERE RN >= 11

8, 内置函数

这个肯定有区别, 比如mysql下的ifNull对应oracle下的NVL

9, DDL

mysql下我们用惯了drop table if exists的语法, 在oracle下你只能人工去判断了,这个很不友好.

mysql下字段的注释可以紧跟在字段后, 在oracle下你只能在建完表之后再去添加字段注释.

10, DML

大部分DML语法一样, 但有一些还是不同, 比如批量插入

//区别远不止上面这些, 一句话oracle是重量级的.

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/wangxu3655/blog/1931759

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值