【數(shù)據(jù)庫】MySQL 和 Oracle 的區(qū)別?不懂的趕緊了解一下
當(dāng)你面試的時候突然被問到:MySQL和Oracle的區(qū)別?你會怎么回答?其實面試官提問的時候主要是想考察你對數(shù)據(jù)庫的理解以及熟練程度,什么情況下使用?mysql,什么情況下使用?Oracle,各有什么優(yōu)缺點!下面帶大家一起分析這個問題的解答方式!

1. Oracle?是大型數(shù)據(jù)庫而?Mysql?是中小型數(shù)據(jù)庫,Oracle?市?場占有率達?40%,Mysql?只有?20%左右,同時Mysql?是開源的而?Oracle?價格非常高。
2. Oracle?支持大并發(fā),大訪問量,是?OLTP?最好的工具。
3.?安裝所用的空間差別也是很大的,Mysql?安裝完后才?152M?而Oracle?有?3G?左右,且使用的時候?Oracle?占用特別大的內(nèi)存空間和其他機器性能。
4.Oracle 和 Mysql?操作上的區(qū)別

①主鍵Mysql?一般使用自動增長類型,在創(chuàng)建表時只要指定表的主鍵為?autoincrement,插?入記錄時,不需要再指定該記錄的主鍵值,Mysql?將自動增長;Oracle?沒有自動?增長類型,主鍵一般使用的序列,插入記錄時將序列號的下一個值付給該字段即?可;只是?ORM?框架是只要是?native?主鍵生成策略即可。
②單引號的處理MYSQL?里可以用雙引號包起字符串,ORACLE?里只可以用單引號包起字符串。在?插入和修改字符串前必須做單引號的替換?、把所有出現(xiàn)的一個單引號替換成兩個?單引號。
③翻頁的?SQL?語句的處理MYSQL?處理翻頁的?SQL?語句比較簡單,用?LIMIT?開始位置,?記錄個數(shù);ORACLE?處?理翻頁的?SQL?語句就比較繁瑣了。每個結(jié)果集只有一個ROWNUM?字段標(biāo)明它的?位置,?并且只能用?ROWNUM<100,?不能用?ROWNUM>80。
④?長字符串的處理長字符串的處理?ORACLE?也有它特殊的地方。INSERT?和?UPDATE?時最大可操作的?字符串長度小于等于?4000?個單字節(jié),?如果要插入更長的字符串,?請考慮字段用?CLOB?類型,方法借用?ORACLE?里自帶的DBMS_LOB程序包。插入修改記錄前一定?要做進行非空和長度判斷,不能為空的字段值和超出長度字段值都應(yīng)該提出警告,?返?回?上次?操作。
⑤空字符的處理MYSQL?的非空字段也有空的內(nèi)容,ORACLE?里定義了非空字段就不容許有空的內(nèi)?容。按?MYSQL的?NOT NULL?來定義?ORACLE?表結(jié)構(gòu),?導(dǎo)數(shù)據(jù)的時候會產(chǎn)生錯誤。因?此導(dǎo)數(shù)據(jù)時要對空字符進行判斷,如果為?NULL或空字符,需要把它改成一個空?格的字符串。

⑥字符串的模糊比較MYSQL?里用?字段名?like '%字符串%',ORACLE?里也可以用?字段名?like'%字符串%'?但?這種方法不能使用索引,?速度不快。
⑦Oracle?實現(xiàn)了?ANSII SQL?中大部分功能,如,事務(wù)的隔離級別、傳播特性等而?Mysql?在這方面還是比較的弱。
MySQL和Oracle都是流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),在世界各地廣泛使用。但是根據(jù)他們各自的特性,在使用上有了很大的差別。作為開發(fā)者經(jīng)常要用到數(shù)據(jù)庫,那到底是用MySQL還是用Oracle呢?則需要優(yōu)先判斷企業(yè)對于數(shù)據(jù)庫的使用要求而定了。
關(guān)于MySQL和Oracle的區(qū)別你了解了嗎?

另外,對現(xiàn)在我們的大多數(shù)小伙伴來說編程不知道如何入門,如何打好基礎(chǔ)!栽一棵樹最好的時間是十年前,其次是現(xiàn)在。對于準(zhǔn)備學(xué)習(xí)編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!
微信公眾號:C語言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!
