1. 单双引号的处理
MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和查询的时候要注意。
2.关键字的处理
MYSQL使用关键字作为别名的处理方式:使用符号将关键字包起来即可,但是在Oracle中是不行的,Oracle中使用关键字作为别名需要使用 “” 双引号包起来
一般报这个错 ,可能就是关键字的原因 修改为:
3.表名、字段名长度的处理
MYSQL中的长度限制为64,但是在Oracle中的长度限制为30,这其中包括(字段、表 )别名长度也不能超过30
4.日期字段的处理
MYSQL日期字段分DATE和TIME两种,Oracle日期字段只有DATE,包含年月日时分秒信息,MYSQL用当前数据库的系统时间为now() 或者 SYSDATE() , 精确到秒,Oracle用当前数据库的系统时间为SYSDATE, 精确到秒。
Oracle to_date() 与 to_char() 日期和字符串转换:
把日期转为字符串格式 : to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
把字符串转为日期格式 : to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss')
Mysql DATE_FORMAT() 日期和字符串转换:
把字符串转为日期格式 : DATE_FORMAT('2017-09-20 08:30:45','%Y-%m-%d %H:%i:%S')
把日期转为字符串格式 : DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')
日期字段的数学运算公式有很大的不同。MYSQL找到离当前时间7天用 DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7;
mysql: 可以用Date类型的日期或者字符串进行时间比较,但是oracle:必须用to_date()函数和to_char()函数配合转换成与数据库字段统一的类型,然后进行比较
5.字符串的模糊查询比较
MYSQL里用 CONCAT('%', 字符串, '%') , ORACLE里可以用 字段名 like '%字符串%' 但这种方法不能使用索引, 速度不快,用字符串比较函数 instr(字段名,'字符串')>0 会得到更精确的查找结果
6.有嵌套查询,MYSQL最外层一定要加别名,Oracle 可以不用
7.拼接字符串在Oracle中用|| , MySQL中用concat('a','b','c')
8.Orcale用decode()来转换数据,mysql用case when
case..when 用法:
case sex
when '1' then '男'
when '2' then '女'
else '其他' end
decode() 用法:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
9.分页的SQL语句的处理
Mysql 中分页使用limit 即可
select * from test limit 3,5;--查询test从3开始,5条数
Oracle使用rownum分页,rownum 从1 开始
select *
from (select rownum rn, a.*
from table_name a
where rownum <= x / / 结 束行,x = startPage * pageSize)
where rn > y;
/ / 起始行,y =(startPage - 1) * pageSize
有一些下面的情况,Mysql 中符合条件的查一条:
select * from test limit 1
在Oracle中应该可以通过rownum实现:
select * from test where rownum <=1
10.Oracle与Mysql存储过程区别 blog.csdn.net/wb96a1007/a…