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

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

1, 数据类型sql

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

2, 空值null和''函数

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

3, 自增主键 开发

oracle没有自增主键, 不过能够经过“序列+触发器”的方式实现.字符串

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

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

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是重量级的.

相关文章
相关标签/搜索