一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

三大主流數(shù)據(jù)庫對比 哪個更有優(yōu)勢

電子工程師 ? 來源:網(wǎng)絡整理 ? 作者:工程師李察 ? 2018-09-08 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Oracle

Oracle 能在所有主流平臺上運行(包括Windows)。完全支持所有的工業(yè)標準。采用完全開放策略。可以使客戶選擇最適合的解決方案。對開發(fā)商全力支持,Oracle并行服務器通過使一組結點共享同一簇中的工作來擴展Windows NT的能力,提供高可用性和高伸縮性的簇的解決方案。如果Windows NT不能滿足需要,用戶可以把數(shù)據(jù)庫移到UNIX中。Oracle的并行服務器對各種UNIX平臺的集群機制都有著相當高的集成度。Oracle獲得最高認證級別的ISO標準認證.Oracle性能最高,保持開放平臺下的TPC-D和TPC-C的世界記錄Oracle多層次網(wǎng)絡計 算,支持多種工業(yè)標準,可以用ODBC、JDBC、OCI等網(wǎng)絡客戶連接。

Oracle 在兼容性、可移植性、可聯(lián)結性、高生產(chǎn)率上、開放性也存在優(yōu)點。Oracle產(chǎn)品采用標準SQL,并經(jīng)過美國國家標準技術所(NIST)測試。與 IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。Oracle的產(chǎn)品可運行于很寬范圍的硬件與操作系統(tǒng)平臺上??梢园惭b在70種以上 不同的大、中、小型機上;可在VMS、DOS、UNIX、WINDOWS等多種操作系統(tǒng)下工作。能與多種通訊網(wǎng)絡相連,支持各種協(xié)議(TCP/IP、 DECnet、LU6.2等)。提供了多種開發(fā)工具,能極大的方便用戶進行進一步的開發(fā)。Oracle良好的兼容性、可移植性、可連接性和高生產(chǎn)率是 Oracle RDBMS具有良好的開放性。

Oracle價格是比較昂貴的。據(jù)說一套正版的Oracle軟件早在2006年年底的時候在市場上的價格已經(jīng)達到了6位數(shù)。所以如果你的項目不是那種超級大的項目,還是放棄Oracle吧。

SQL Server

SQL Server 是 Microsoft推出一套產(chǎn)品,它具有使用方便、可伸縮性好、與相關軟件集成程度高等優(yōu)點,逐漸成為Windows平臺下進行數(shù)據(jù)庫應用開發(fā)較為理想的 選擇之一。SQLServer是目前流行的數(shù)據(jù)庫之一,它已廣泛應用于金融、保險、電力、行政管理等與數(shù)據(jù)庫有關的行業(yè)。而且,由于其易操作性及友好的界 面,贏得了廣大用戶的青睞,尤其是SQLServer與其它數(shù)據(jù)庫,如Access、FoxPro、Excel等有良好的ODBC接口,可以把上述數(shù)據(jù)庫 轉成SQLServer的數(shù)據(jù)庫,因此目前越來越多的讀者正在使用SQLServer。

SQL Server由于是微軟的產(chǎn)品,又有著如此強大的功能,所以他的影響力是幾種數(shù)據(jù)庫系統(tǒng)中比較大,用戶也是比較多的。它一般是和同是微軟產(chǎn)品的.net平臺一起搭配使用。當然其他的各種開發(fā)平臺,都提供了與它相關的數(shù)據(jù)庫連接方式。因此,開發(fā)軟件用SQL Server做數(shù)據(jù)庫是一個正確的選擇。

MySQL

MySQL不支持事務處理,沒有視圖,沒有存儲過程和觸發(fā)器,沒有數(shù)據(jù)庫端的用戶自定義函數(shù),不能完全使用標準的SQL語法。

從數(shù)據(jù)庫行家聽說的第一件事就是MySQL缺乏transactions,rollbacks, 和subselects的功能。如果你計劃使用MySQL寫一個關于銀行、會計的應用程序,或者計劃維護一些隨時需要線性遞增的不同類的計數(shù)器,你將缺乏transactions功能。在現(xiàn)有的發(fā)布版本的 MySQL下,請不要有任何的這些想法。(請注意,MySQL的測試版3.23.x系列現(xiàn)在已經(jīng)支持transactions了)。

在非常必要的情況下,MySQL的局限性可以通過一部分開發(fā)者的努力得到克服。在MySQL中你失去的主要功能是subselect語句,而這正是其它的所有數(shù)據(jù)庫都具有的。換而言之,這個失去的功能是一個痛苦。

MySQL沒法處理復雜的關聯(lián)性數(shù)據(jù)庫功能,例如,子查詢(subqueries),雖然大多數(shù)的子查詢都可以改寫成join 另一個MySQL沒有提供支持的功能是事務處理(transaction)以及事務的提交(commit)/撤銷(rollback)。一個事務指的是被當作一個單位來共同執(zhí)行的一群或一套命令。如果一個事務沒法完成,那么整個事務里面沒有一個指令是真正執(zhí)行下去的。對于必須處理線上訂單的商業(yè)網(wǎng)站來說,MySQL沒有支持這項功能,的確讓人覺得很失望。但是可以用MaxSQL,一個分開的服務器,它能通過外掛的表格來支持事務功能。

外鍵(foreignkey)以及參考完整性限制(referentialintegrity)可以讓你制定表格中資料間的約束,然后將約束 (constraint)加到你所規(guī)定的資料里面。這些MySQL沒有的功能表示一個有賴復雜的資料關系的應用程序并不適合使用MySQL。當我們說 MySQL不支持外鍵時,我們指的就是數(shù)據(jù)庫的參考完整性限制--MySQL并沒有支持外鍵的規(guī)則,當然更沒有支持連鎖刪除(cascadingdelete)的功能。簡短的說,如果你的工作需要使用復雜的資料關聯(lián),那你還是用原來的Access吧。

你在MySQL中也不會找到存儲進程(storedprocedure)以及觸發(fā)器(trigger)。(針對這些功能,在Access提供了相對的事件進程(eventprocedure)。

MySQL+php+apache三者被軟件開發(fā)者稱為“php黃金組合”。

Oracle和MySQL的主要區(qū)別

Oracle:客戶端和命令窗口,都是由用戶決定內(nèi)容-> conn user_name/password;

MySQL:客戶端和命令窗口,都是由數(shù)據(jù)庫決定內(nèi)容-> use datebase;

都可以創(chuàng)建多數(shù)據(jù)庫多用戶,個人傾向于Oracle一個數(shù)據(jù)庫中多個用戶的形式,MySQL多個數(shù)據(jù)庫多個用戶形式(最好每個數(shù)據(jù)庫對應一個用戶)

Oracle是大型數(shù)據(jù)庫而MySQL是中小型數(shù)據(jù)庫,Oracle市場占有率達40%,MySQL只有20%左右,同時MySQL是開源的而Oracle價格非常高。

Oracle支持大并發(fā),大訪問量,是OLTP(On-Line Transaction Processing聯(lián)機事務處理系統(tǒng))最好的工具。

安裝所用的空間差別也是很大的,MySQL安裝完后才152M而Oracle有3G左右,且使用的時候Oracle占用特別大的內(nèi)存空間和其他機器性能。

Oracle也與MySQL操作上的一些區(qū)別

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

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

eg:

select name,count(money) from user;這個放在MySQL中沒有問題在Oracle中就有問題了。

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

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

CREATE SEQUENCE序列號的名稱(最好是表名+序列號標記)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

其中最大的值按字段的長度來定,如果定義的自動增長的序列號NUMBER(6),最大值為999999

INSERT語句插入這個字段值為:序列號的名稱.NEXTVAL

單引號的處理

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

翻頁的SQL語句的處理

MySQL處理翻頁的SQL語句比較簡單,用LIMIT開始位置,記錄個數(shù);PHP里還可以用SEEK定位到結果集的位置。Oracle處理翻頁的SQL語句就比較繁瑣了。每個結果集只有一個ROWNUM字段標明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80。

以下是經(jīng)過分析后較好的兩種Oracle翻頁SQL語句(ID是唯一關鍵字的字段名):

語句一:

SELECTID,[FIELD_NAME,...]FROMTABLE_NAMEWHEREIDIN(SELECTIDFROM(SELECTROWNUMASNUMROW,IDFROMTABLE_NAMEWHERE條件1ORDERBY條件2)WHERENUMROW>80ANDNUMROW

語句二:

SELECT*FROM((SELECTROWNUMASNUMROW,c.*from(SELECT[FIELD_NAME,...]FROMTABLE_NAMEWHERE條件1ORDERBY條件2)c)WHERENUMROW>80ANDNUMROW

長字符串的處理

長字符串的處理Oracle也有它特殊的地方。INSERT和UPDATE時最大可操作的字符串長度小于等于4000個單字節(jié),如果要插入更長的字符串,請考慮字段用CLOB類型,方法借用Oracle里自帶的DBMS_LOB程序包。插入修改記錄前一定要做進行非空和長度判斷,不能為空的字段值和超出長度字段值都應該提出警告,返回上次操作。

日期字段的處理

MySQL日期字段分DATE和TIME兩種,Oracle日期字段只有DATE,包含年月日時分秒信息,用當前數(shù)據(jù)庫的系統(tǒng)時間為SYSDATE,精確到秒,或者用字符串轉換成日期型函數(shù)TO_DATE('2001-08-01','YYYY-MM-DD')年-月-日24小時:分鐘:秒的格式YYYY-MM-DD HH24:MI:SS TO_DATE()還有很多種日期格式,可以參看Oracle DOC.

日期型字段轉換成字符串函數(shù)TO_CHAR('2001-08-01','YYYY-MM-DD HH24:MI:SS')

日期字段的數(shù)學運算公式有很大的不同。MySQL找到離當前時間7天用DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)Oracle找到離當前時間7天用 DATE_FIELD_NAME >SYSDATE - 7;

MySQL中插入當前時間的幾個函數(shù)是:NOW()函數(shù)以`'YYYY-MM-DD HH:MM:SS'返回當前的日期時間,可以直接存到DATETIME字段中。CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,可以直接存到DATE字段中。CURTIME()以'HH:MM:SS'的格式返回當前的時間,可以直接存到TIME字段中。例:insert into tablename (fieldname) values (now())

而Oracle中當前時間是sysdate

空字符的處理

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

字符串的模糊比較

MySQL里用字段名like%'字符串%',Oracle里也可以用字段名like%'字符串%'但這種方法不能使用索引,速度不快,用字符串比較函數(shù)instr(字段名,'字符串')>0會得到更精確的查找結果。

程序和函數(shù)里,操作數(shù)據(jù)庫的工作完成后請注意結果集和指針的釋放。

主鍵

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SQL
    SQL
    +關注

    關注

    1

    文章

    783

    瀏覽量

    45088
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3922

    瀏覽量

    66163
  • Oracle
    +關注

    關注

    2

    文章

    300

    瀏覽量

    36039
  • MySQL
    +關注

    關注

    1

    文章

    856

    瀏覽量

    27891
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是時序數(shù)據(jù)庫?

    本文根據(jù)演講視頻以及PPT整理而成。本文將主要圍繞以下四個方面進行分享:時序數(shù)據(jù)與時序數(shù)據(jù)庫時序數(shù)據(jù)庫的演變時序數(shù)據(jù)庫對比總結一、時序
    發(fā)表于 07-12 08:35

    Amazon RDS云數(shù)據(jù)庫優(yōu)勢

    。Amazon RDS 通過管理耗時的數(shù)據(jù)庫管理任務(包括備份、軟件修補、監(jiān)控、擴展和復制),讓您能專注于應用程序。 優(yōu)勢 易于管理 Amazon RDS for MariaDB 可以自動執(zhí)行設置
    發(fā)表于 10-13 16:51 ?0次下載

    數(shù)據(jù)庫應用系統(tǒng)的優(yōu)勢

    數(shù)據(jù)庫應用系統(tǒng)是由數(shù)據(jù)庫系統(tǒng)、應用程序系統(tǒng)、用戶組成的,具體包括:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺、軟件平臺、應用軟件、應用界
    的頭像 發(fā)表于 02-28 15:50 ?6906次閱讀

    內(nèi)存數(shù)據(jù)庫的應用優(yōu)勢是怎樣的

    想了解內(nèi)存數(shù)據(jù)庫的應用優(yōu)勢,舉個具體的例子來說明應該會更直觀生動。 拿運營商來舉例,某家運營商的云能力中心現(xiàn)在用的是基于磁盤架構數(shù)據(jù)庫(如MySQL),但是隨著業(yè)務的不斷發(fā)展,出現(xiàn)了數(shù)據(jù)
    的頭像 發(fā)表于 06-20 18:13 ?1158次閱讀

    對比傳統(tǒng)自建數(shù)據(jù)庫,華為云數(shù)據(jù)庫 RDS for MySQL優(yōu)勢明顯

    ??對于數(shù)據(jù)庫,想必大家都已經(jīng)不再陌生,但若要解釋它是什么,當下市場上的數(shù)據(jù)庫又有著怎樣的不同,相信不少小伙伴都處于一知半解的懵逼狀態(tài)。今天,就讓我們來系統(tǒng)的認識一下數(shù)據(jù)庫。 ??簡單來說,數(shù)
    的頭像 發(fā)表于 10-20 18:05 ?825次閱讀

    沒有對比就沒有傷害,華為云數(shù)據(jù)庫比自建數(shù)據(jù)庫強在哪?

    下,云數(shù)據(jù)庫和自建數(shù)據(jù)庫誰更好?好在哪?今天我們就來詳細講解一下吧。 就拿如今應用最為廣泛和廣受企業(yè)客戶喜愛的華為云數(shù)據(jù)庫MySQL來講,它是全球最受歡迎的開源性數(shù)據(jù)庫之一,在
    的頭像 發(fā)表于 10-22 12:57 ?1185次閱讀
    沒有<b class='flag-5'>對比</b>就沒有傷害,華為云<b class='flag-5'>數(shù)據(jù)庫</b>比自建<b class='flag-5'>數(shù)據(jù)庫</b>強在哪?

    數(shù)據(jù)庫上云已成趨勢,華為云數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫對比解析

    如今參與信息化的企業(yè)大多離不開數(shù)據(jù)庫,但很多人對什么是數(shù)據(jù)庫并沒有一個清晰的認識。那么數(shù)據(jù)庫到底是什么?傳統(tǒng)數(shù)據(jù)庫是根據(jù)某種數(shù)據(jù)類型組織起來
    的頭像 發(fā)表于 12-27 16:52 ?1347次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b>上云已成趨勢,華為云<b class='flag-5'>數(shù)據(jù)庫</b>與傳統(tǒng)<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>對比</b>解析

    數(shù)據(jù)庫的特性及其優(yōu)勢

    本文介紹了圖數(shù)據(jù)庫的歷史由來、特性及其優(yōu)勢,并說明了圖數(shù)據(jù)庫解決的是什么樣的問題,闡述了圖數(shù)據(jù)庫的應用場景,并對其發(fā)展做了展望
    的頭像 發(fā)表于 03-29 13:35 ?2549次閱讀
    圖<b class='flag-5'>數(shù)據(jù)庫</b>的特性及其<b class='flag-5'>優(yōu)勢</b>

    PetaExpress云數(shù)據(jù)庫 MongoDB(mongodb數(shù)據(jù)庫)優(yōu)勢

    MongoDB(mongodb數(shù)據(jù)庫)優(yōu)勢: 輕松部署文檔數(shù)據(jù)庫MongoDB 控制臺可以創(chuàng)建數(shù)據(jù)庫,文檔數(shù)據(jù)庫MongoDB 例子可以在
    的頭像 發(fā)表于 07-14 10:06 ?800次閱讀

    數(shù)據(jù)庫和普通數(shù)據(jù)庫區(qū)別?|PetaExpress云端數(shù)據(jù)庫

    和持久性有四個特點。 云數(shù)據(jù)庫和普通數(shù)據(jù)庫相比都具備哪些優(yōu)勢? 1)安全穩(wěn)定 云端數(shù)據(jù)庫服務,能夠幫助用戶將危險的操作收縮起來,避免數(shù)據(jù)庫
    的頭像 發(fā)表于 08-01 17:13 ?1395次閱讀

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接

    使用第,包括MySQLDB、sqlite3、psycopg2等。其中MySQLDB是Python連接MySQL數(shù)據(jù)庫的一個重要
    的頭像 發(fā)表于 08-28 17:09 ?2217次閱讀

    什么是JSON數(shù)據(jù)庫

    如何理解JSON數(shù)據(jù)庫?作為NoSQL數(shù)據(jù)庫的一種類型,JSON數(shù)據(jù)庫有哪些優(yōu)勢呢?JSON數(shù)據(jù)庫如何運作,它為應用程序開發(fā)者帶來了哪些價值
    的頭像 發(fā)表于 12-02 08:04 ?1251次閱讀
    什么是JSON<b class='flag-5'>數(shù)據(jù)庫</b>

    關于JSON數(shù)據(jù)庫

    如何理解JSON數(shù)據(jù)庫?作為NoSQL數(shù)據(jù)庫的一種類型,JSON數(shù)據(jù)庫有哪些優(yōu)勢呢?JSON數(shù)據(jù)庫如何運作,它為應用程序開發(fā)者帶來了哪些價值
    的頭像 發(fā)表于 12-06 13:46 ?1186次閱讀
    關于JSON<b class='flag-5'>數(shù)據(jù)庫</b>

    云原生和數(shù)據(jù)庫哪個好一些?

    云原生和數(shù)據(jù)庫哪個好一些?云原生和數(shù)據(jù)庫各有其獨特的優(yōu)勢,適用于不同的場景。云原生強調高效資源利用、快速開發(fā)部署和高可伸縮性,適合需要高度靈活性和快速迭代的應用。而
    的頭像 發(fā)表于 11-29 10:07 ?514次閱讀

    數(shù)據(jù)庫和云主機哪個好一點?

    數(shù)據(jù)庫和云主機哪個好一點?云主機和云數(shù)據(jù)庫各有優(yōu)勢,選擇哪個更好取決于具體需求。云主機提供虛擬化的計算資源,適用于運行各種應用;而云
    的頭像 發(fā)表于 12-04 13:50 ?447次閱讀