溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle與Mysql有什么區(qū)別

發(fā)布時間:2021-08-05 15:12:21 來源:億速云 閱讀:159 作者:Leah 欄目:數(shù)據(jù)庫

Oracle與Mysql有什么區(qū)別,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

  Oracle與Mysql的區(qū)別:

  Oracle:客戶端與命令窗口都是由用戶決定的;是大型數(shù)據(jù)庫,市場占有率達40%;價格非常高,占據(jù)特別大的內存空間和其他機器性能,安裝完后又3G左右;

  Mysql:客戶端與命令窗口都是由數(shù)據(jù)庫決定的;是中小型數(shù)據(jù)庫,市場占有率是20%,開源且免費的,安裝完后152M。

  操作上的區(qū)別:

  1、組函數(shù)用法規(guī)則:

  MySQL中組函數(shù)在select語句中可以隨意使用,但在Oracle中如果查詢語句中有組函數(shù),那其他列名必須是組函數(shù)處理過的,或者是group by子句中的列否則報錯。

  2、自動增長的數(shù)據(jù)類型處理:

  MySQL有自動增長的數(shù)據(jù)類型,插入記錄時不用操作此字段,會自動獲得數(shù)據(jù)值。Oracle沒有自動增長的數(shù)據(jù)類型,需要建立一個自動增長的序列號,插入記錄時要把序列號的下一個值賦于此字段。

  3、單引號的處理:

  mySql用雙引號包起字符串,Oracle里用單引號包起字符串,在插入和修改字符串前必須做單引號的替換:把所有出現(xiàn)的一個單引號替換成兩個單引號。

  4、翻頁的SQL語句的處理:

  語句一:

  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 > 80 AND NUMROW < 100 ) ORDER BY 條件3;

  語句二:

  SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (SELECT [FIELD_NAME,...] FROM TABLE_NAME WHERE 條件1 ORDER BY 條件2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 條件3;

  5、長字符串的處理:

  插入修改記錄前一定要做進行非空和長度判斷,不能為空的字段值和超出長度字段值都應該提出警告。

  6、主鍵:

  MySQL一般使用自動增長類型,在創(chuàng)建表時只要指定表的主鍵為auto increment,插入記錄時,不需要再指定該記錄的主鍵值,MySQL將自動增長;Oracle沒有自動增長類型,主鍵一般使用的序列,插入記錄時將序列號的下一個值付給該字段即可;只是ORM框架是只要是native主鍵生成策略即可。

  7、字符串的模糊比較:

  mySql里字段名like%'字符串'%,用字符串比較函數(shù)instr(字段名,'字符串')>0會得到更精確的查找結果。

  8、空字符的處理:

  MySQL的非空字段也有空的內容,Oracle里定義了非空字段就不容許有空的內容。按MySQL的NOT NULL來定義Oracle表結構,導數(shù)據(jù)的時候會產生錯誤。因此導數(shù)據(jù)時要對空字符進行判斷,如果為NULL或空字符,需要把它改成一個空格的字符串。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI