1. 程式人生 > >MySql與Oracle的區別總結

MySql與Oracle的區別總結

MySql與Oracle的區別總結

  在平時工作中使用這兩個資料庫的時候要多一些,這兩資料庫的使用方面存在的一些各自不同的地方,許多面試官也會問這兩個的區別。所以,憑著自己的一些經驗個感觸,來說說這二者的區別。

  1. 使用的群眾:MySql中小型資料庫,開源的免費使用,輕便簡單,當然也是初學者的最佳選擇,市場使用率排在Oracle之後;Oracle大型資料庫,需要高昂的價格,效能較好支援大併發大訪問量,是聯機事務處理(OLTP)的最好工具,所以市場的使用率也是相當高的。
  2. 安裝使用時,對電腦的效能要求也是不一樣的。MySql安裝完後僅佔100M多點的記憶體,不怎麼耗費電腦資源。但是Oracle由於功能強大,安裝完後會佔用電腦3G的記憶體,並且執行時候所佔電腦資源也是相當大的。
  3. 二者在使用時的區別:
  • 主鍵:

  MySql一般使用自動增長型別,在建立表的時候只要指定表的主鍵為auto increment,插入記錄時就不需要再為主鍵新增記錄了,主鍵會自動增長。Oracle中沒有自動增長,主鍵一般使用序列,插入記錄時將序列號的下一值付給該欄位即可,只是ORM框架只是需要native主鍵生成策略即可。

  • 單引號的處理:

  MySql裡可以使用雙引號來包起字串,Oracle裡要使用單引號包起字串。

  • 分頁查詢:

  這個應該是兩者最明顯的區別了,很多人都知道MySql中分頁很簡單,因為他有專門的關鍵字limit來實現分頁查詢;但是Oracle裡面沒有這種關鍵字來實現分頁查詢的,所以它實現起來就比MySql要繁瑣得多了,在每個結果集中只有一個rownum欄位標明它的位置,並且只能用rownum<=某個數,不能用rownum>=某個數,因為ROWNUM是偽列,在使用時所以需要為ROWNUM取一個別名,變成邏輯列,然後來操作。

1 select * from (select ROWNUM as num,A.* from (select * from test) A where ROWNUM <=40) where num >= 20;

  這是這兩者的最大的不同.
  • 長字串的處理:

  Oracle有它獨特的地方,資料型別有一個clob型別,此型別專門用於在insert或者update時候字串長度大於等於4000個單位元組時使用。所以在插入記錄前一定要進行非空和長度的判斷,不能為空的或者長度超出的都應該提出警告,返回上次操作。MySql就沒有這樣的資料型別。

  • 修改表的資料:

  Oracle資料庫在使用表的資料操作時,需要用sql語句來執行,比如:select * from table for update;這樣你才能對資料進行修改,修改完了之後記得點選提交事務按鈕。MySql中修改或新增資料就簡單得多了,直接就可以設定資料,點選refresh儲存就好。

  這就是我個人在平時使用時,得到的一些切身感受,它們二者的區別肯定也不僅僅是這幾點,總結得不是很全面。存在不對的地方希望大家給出意見。

轉自:https://www.cnblogs.com/tyhJava/p/5814322.html