详细介绍关于MYSQL和ORACLE的区别

有很多, 候用MYSQL数据基本上能实现功能需求,随着用用的增多,数据量的增加,MYSQL渐渐地出不堪重的情况:接很慢甚至宕机,于是就有把数据从MYSQL迁到ORACLE的需求,用程序也要相做一些修改。总结出以下几点注意事
1
的数据
          MYSQL
有自的数据型,插入记录时不用操作此字段,会自动获得数据ORACLE没有自的数据型,需要建立一个自的序列号,插入记录时要把序列号的下一个值赋于此字段。
    
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1        START        WITH        1 MAXVALUE        99999        CYCLE        NOCACHE;
    
其中最大的按字段的度来定, 如果定的自的序列号 NUMBER(6) , 最大值为999999
          INSERT
句插入个字段值为: 序列号的名称.NEXTVAL
2.
引号的
          MYSQL
里可以用双引号包起字符串ORACLE里只可以用引号包起字符串。在插入和修改字符串前必引号的替:把所有出的一个引号替成两个引号。
3.  
SQL句的
          MYSQL
SQL句比较简单,用LIMIT 始位置, 记录个数;PHP可以用SEEK定位到果集的位置。ORACLESQL句就比了。果集只有一个ROWNUM字段明它的位置, 并且只能用ROWNUM不能用ROWNUM>80
    
以下是经过分析后好的ORACLESQL( ID是唯一关键字的字段名 )

SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN (     SELECT ID   FROM (      SELECT ROWNUM AS NUMROW, ID      FROM TABLE_NAME      WHERE 条件1      ORDER BY 条件2)  WHERE NUMROW &gt; 80 AND NUMROW <p><strong><span style="color: #464646;"><span style="font-size: 15pt; color: #0e59c0;"></span><span style="color: #464646;"><strong>4. 长字符串的</strong><strong><span style="color: #3366ff;">处</span><span style="color: #3366ff;">理</span></strong><span style="color: #464646;"><br>    </span><span style="color: #464646;">长</span><span style="color: #464646;">字符串的</span><span style="color: #464646;"><span style="color: #3366ff;">处</span><span style="color: #3366ff;">理</span>oracle</span><span style="color: #464646;">也有它特殊的地方。</span><span style="color: #464646;">insert</span><span style="color: #464646;">和</span><span style="color: #464646;">update</span><span style="color: #464646;">时</span><span style="color: #464646;">最大可操作的字符串</span><span style="color: #464646;">长</span><span style="color: #464646;">度小于等于</span><span style="color: #464646;">4000</span><span style="color: #464646;">个</span><span style="color: #464646;">单</span><span style="color: #464646;">字</span><span style="color: #464646;">节</span><span style="color: #464646;">, </span><span style="color: #464646;">如果要插入更</span><span style="color: #464646;">长</span><span style="color: #464646;">的字符串</span><span style="color: #464646;">, </span><span style="color: #464646;">请</span><span style="color: #464646;">考</span><span style="color: #464646;">虑</span><span style="color: #464646;">字段用</span><span style="color: #464646;">clob</span><span style="color: #464646;">类</span><span style="color: #464646;">型,方法借用</span><span style="color: #464646;">oracle</span><span style="color: #464646;">里自</span><span style="color: #464646;">带</span><span style="color: #464646;">的</span><span style="color: #464646;">dbms_lob</span><span style="color: #464646;">程序包。</span><span style="color: #464646;">插入修改</span><span style="color: #464646;">记录</span><span style="color: #464646;">前一定要做</span><span style="color: #464646;">进</span><span style="color: #464646;">行非空和</span><span style="color: #464646;">长</span><span style="color: #464646;">度判断,不能</span><span style="color: #464646;">为</span><span style="color: #464646;">空的字段</span><span style="color: #464646;">值</span><span style="color: #464646;">和超出</span><span style="color: #464646;">长</span><span style="color: #464646;">度字段</span><span style="color: #464646;">值</span><span style="color: #464646;">都</span><span style="color: #464646;">应该</span><span style="color: #464646;">提出警告</span><span style="color: #464646;">,</span><span style="color: #464646;">返回上次操作。</span><br><br><strong>5.         日期字段的</strong><strong><span style="color: #3366ff;">处</span><span style="color: #3366ff;">理</span></strong><br>           mysql日期字段分<span style="color: #464646;">date</span><span style="color: #464646;">和</span><span style="color: #464646;">time</span><span style="color: #464646;">两</span><span style="color: #464646;">种</span><span style="color: #464646;">,</span><span style="color: #464646;">oracle</span><span style="color: #464646;">日期字段只有</span><span style="color: #464646;">date</span><span style="color: #464646;">,包含年月日</span><span style="color: #464646;">时</span><span style="color: #464646;">分秒信息,用当前</span><span style="color: #464646;"><span style="color: #3366ff;">数据</span><span style="color: #3366ff;">库</span></span><span style="color: #464646;">的系</span><span style="color: #464646;">统时间为</span><span style="color: #464646;">sysdate, </span><span style="color: #464646;">精确到秒,或者用字符串</span><span style="color: #464646;">转换</span><span style="color: #464646;">成日期型函数</span><span style="color: #464646;">to_date(‘<chsdate isrocdate="false" islunardate="false" day="1" month="8" year="2001">2001-08-01</chsdate>’,’yyyy-mm-dd’)</span><span style="color: #464646;">年</span><span style="color: #464646;">-</span><span style="color: #464646;">月</span><span style="color: #464646;">-</span><span style="color: #464646;">日</span><span style="color: #464646;"> 24</span><span style="color: #464646;">小</span><span style="color: #464646;">时</span><span style="color: #464646;">:</span><span style="color: #464646;">分</span><span style="color: #464646;">钟</span><span style="color: #464646;">:</span><span style="color: #464646;">秒</span><span style="color: #464646;"> </span><span style="color: #464646;">的格式</span><span style="color: #464646;">yyyy-mm-dd hh24:mi:ss to_date()</span><span style="color: #464646;">还</span><span style="color: #464646;">有很多</span><span style="color: #464646;">种</span><span style="color: #464646;">日期格式</span><span style="color: #464646;">, </span><span style="color: #464646;">可以参看</span><span style="color: #464646;">oracle doc.</span><span style="color: #464646;">日期型字段</span><span style="color: #464646;">转换</span>成字符串函数to_char(‘<chsdate isrocdate="false" islunardate="false" day="1" month="8" year="2001">2001-08-01</chsdate>’,’yyyy-mm-dd hh24:mi:ss’)<br><br>    <span style="color: #464646;">日期字段的数学运算公式有很大的不同。</span><span style="color: #464646;">mysql</span><span style="color: #464646;">找到离当前</span><span style="color: #464646;">时间</span><span style="color: #464646;">7</span><span style="color: #464646;">天用</span><span style="color: #464646;"> date_field_name &gt; subdate</span><span style="color: #464646;">(</span><span style="color: #464646;">now</span><span style="color: #464646;">(),</span><span style="color: #464646;">interval 7 day</span><span style="color: #464646;">)</span><span style="color: #464646;">oracle</span><span style="color: #464646;">找到离当前</span><span style="color: #464646;">时间</span><span style="color: #464646;">7</span>天用 date_field_name &gt;sysdate - 7;<br><br><strong>6.  空字符的</strong><strong><span style="color: #3366ff;">处</span><span style="color: #3366ff;">理</span></strong><br>           mysql的非空字段也有空的内容,<span style="color: #464646;">oracle</span><span style="color: #464646;">里定</span><span style="color: #464646;">义</span><span style="color: #464646;">了非空字段就不容</span><span style="color: #464646;">许</span><span style="color: #464646;">有空的内容。按</span><span style="color: #464646;">mysql</span><span style="color: #464646;">的</span><span style="color: #464646;">not null</span><span style="color: #464646;">来定</span><span style="color: #464646;">义</span><span style="color: #464646;">oracle</span><span style="color: #464646;">表</span><span style="color: #464646;">结</span><span style="color: #464646;">构</span><span style="color: #464646;">, </span><span style="color: #464646;">导</span><span style="color: #464646;">数据</span><span style="color: #464646;">的</span><span style="color: #464646;">时</span><span style="color: #464646;">候会</span><span style="color: #464646;">产</span><span style="color: #464646;">生</span><span style="color: #464646;">错误</span><span style="color: #464646;">。因此</span><span style="color: #464646;">导</span><span style="color: #464646;">数据</span><span style="color: #464646;">时</span><span style="color: #464646;">要</span><span style="color: #464646;">对</span><span style="color: #464646;">空字符</span><span style="color: #464646;">进</span><span style="color: #464646;">行判断,如果</span><span style="color: #464646;">为</span><span style="color: #464646;">null</span>或空字符,需要把它改成一个空格的字符串。<br><br><strong>7. 字符串的模糊比较</strong><br>          mysql里用<span style="color: #464646;"> </span><span style="color: #464646;">字段名</span><span style="color: #464646;"> like '%</span><span style="color: #464646;">字符串</span><span style="color: #464646;">%',oracle</span><span style="color: #464646;">里也可以用</span><span style="color: #464646;"> </span><span style="color: #464646;">字段名</span><span style="color: #464646;"> like '%</span><span style="color: #464646;">字符串</span><span style="color: #464646;">%' </span><span style="color: #464646;">但</span><span style="color: #464646;">这种</span><span style="color: #464646;">方法不能使用索引</span><span style="color: #464646;">, </span><span style="color: #464646;">速度不快,用字符串比</span><span style="color: #464646;">较</span><span style="color: #464646;">函数</span><span style="color: #464646;"> instr(</span><span style="color: #464646;">字段名</span><span style="color: #464646;">,'</span><span style="color: #464646;">字符串</span><span style="color: #464646;">')&gt;0 </span><span style="color: #464646;">会得到更精确的</span><span style="color: #464646;">查</span><span style="color: #464646;">找</span><span style="color: #464646;">结</span>果。<br><br><strong>8. 程序和函数里,操作</strong><strong><span style="color: #3366ff;">数据</span><span style="color: #3366ff;">库</span></strong><strong>的工作完成后请注意结果集和指针的释放。</strong></span></span></strong></p>

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享