一、 常用的基本数据类型对比
中文描述 | ORACLE | 大小范围 | mysql | 大小范围 |
日期时间类型 | date | datetime | ||
数值类型 | number | Int,decimal | ||
变长字符串 | Varchar2(10) | 1-4000bytes | Varchar | 0-65535bytes |
定长字符串 | Char(10) | 1 - 2000bytes | Char | 0-255bytes |
二进制的文本数据 | blob | longblob | ||
大文本数据 | clob | longtext |
二、 常用 SQL 函数以及其它语法差异
函数或者语法 | ORACLE | MYSQL |
日期函数 | Select sysdate from dual; | Select sysdate();select now(); |
日期格式化 | Select to_char(sysdate,’YYYY-MM-DD’) from dual; | Select date_format(now(),’%Y-%M-%D’); |
日期加运算 | Select add_months(sysdate,1) from dual – 加一个月 Select sysdate+1 from dual – 直接加 一天 |
Select date_add(now(),interval 1 month) – 加一个月 select date_add(now(),interval 1 day); – 加一天 |
字符串拼接 | || 符号进行字符串拼接(或者 concat) | 只能使用 concat |
返回限制的条数 | Select * from tableName where rownum <=10; | Select * from tableName limit 5; |
分页查询 | Select * from ( Select t.*,rownum no from tableName t Where t.rownum<=110 ) a where a.no>100; | Select * from tableName limit 101,10; |
外连接 | (+) 是 Oracle 定义的连接语法 | Mysql 不支持 |
全连接 | Full join 是 Oracle 定义的全连接语法 | Mysql 不支持,只能通过左右连接并去重实现 |
数据转换函数 | Decode 数据转换函数 | Case when then end |
自动增长类型 | Oracle 建立 seq 序列来实现自增长 | Mysql 可以使用自动增长的数据类型 |
树形结构的递归查询 | Start with connect by | Mysql 无法实现。只能使用自定义函数来实现 |
判断是否为空 | Nvl(字段名,值); | Ifnull() or isnull |
日期转换函数 | To_date / to_char | Str_to_date / date_format |
大小写区分 | 表名与字段名在不带双引号(“”)的情况下建立的都是不区分大小写 | 默认是区分大小写的。可以修改数据库配置不做区分(Linux) |