詳細介紹關于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 分享