Oracle和Mysql

Oracle和Mysql

開源性

Oracle是閉源且收費(fèi)

MySQL開源免費(fèi)

事務(wù)性

事務(wù):一組DML語句組成的工作單元

Mysql最早是不支持事務(wù)的甚负,采取InnoDB引擎后支持事務(wù)

Mysql中事務(wù)默認(rèn)是自動(dòng)提交的(一條一提)

set auto_commit=false 關(guān)閉自動(dòng)提交

Oracle支持事務(wù)

SQL靈活性

Mysql是比較靈活侨歉,Oracle比較嚴(yán)格(分組校驗(yàn)性拍埠,沒有主鍵自增,Mysql沒有檢查性約束)

-- mysql 可以這么寫毁兆,但是結(jié)果有問題
select deptno,ename,max(sal)
from emp
where deptno is not null
group by deptno

-- oracle 不能這么寫想许,oracle要求,group by 中必須包含 select 中的所有非函數(shù)字段
select deptno,ename,max(sal)
from emp
where deptno is not null
group by deptno

約束

Mysql支持主鍵沃呢,唯一鍵年栓,非空,外鍵

-- mysql 中枚舉類型可以達(dá)到類似效果
create table student2222(
id int(5),
name varchar(50),
gender enum('男','女'),
primary key(id)
)

Oracle支持主鍵薄霜,唯一鍵某抓,非空,外鍵惰瓜,檢查性約束

-- oracle 中支持檢查性約束
create table student1(
id number(5),
name varchar2(50),
gender varchar2(10),
primary key(id),
check (gender in ('男','女'))
)

線程上的不同

主要體現(xiàn)在Linux系統(tǒng)上

Mysql是單進(jìn)程多線程的否副,單個(gè)Mysql服務(wù),可以同時(shí)登錄一個(gè)用戶

Oracle是多進(jìn)程的崎坊,單個(gè)Oracle服務(wù)备禀,可以通過切換不同用戶操作數(shù)據(jù)庫(kù),但是不能同時(shí)登錄某一個(gè)用戶訪問

數(shù)據(jù)庫(kù)實(shí)例上的不同

Mysql用戶是基于實(shí)例的奈揍,當(dāng)實(shí)例創(chuàng)建完畢曲尸,用戶就已經(jīng)分配好了

Oracle必須先建庫(kù),庫(kù)分配對(duì)象男翰,對(duì)象訪問到的對(duì)象都是自己的另患,不能跨權(quán)

SQL方言

主鍵

mysql有主鍵自增

oracle沒有主鍵自增,oracle的主鍵是依賴 序列 完成的

-- 主鍵沒有自增蛾绎,使用序列完成
create table test1(
id number(9),
name varchar2(50),
primary key(id)
)

-- 創(chuàng)建序列 : 生成主鍵昆箕,命名規(guī)范
create sequence test1_id -- 默認(rèn)是從1開始,每次遞增1

insert into test1 (id,name) values (test1_id.nextval,'bob')

-- 具體語法
create sequence test1_id2
[start with 50]
[increment by 2]
[maxvalue 999999]
[minvalue 1]
[cycle]
[cache 20]

外部連接(左連接秘通,右連接为严,自連接,全外連接)

mysql 中左連接寫法

-- 沒有員工的部門也顯示
select ename,sal,d.deptno,dname
from dept d
left join emp e
on e.deptno = d.deptno
-- 沒有部門的員工也顯示
select ename,sal,d.deptno,dname
from emp e
left join dept d
on e.deptno = d.deptno

oracle中也支持上面這種mysql寫法肺稀,同時(shí)還有自己的寫法 (+)

-- 沒有員工的部門也顯示
select ename,sal,d.deptno,dname
from dept d
left join emp e
on e.deptno = d.deptno
-- 沒有部門的員工也顯示
select ename,sal,d.deptno,dname
from emp e
left join dept d
on e.deptno = d.deptno

-- 沒有員工的部門也顯示
select ename,sal,d.deptno,dname
from dept d,emp e
where e.deptno(+) = d.deptno

-- 沒有部門的員工也顯示
select ename,sal,d.deptno,dname
from dept d,emp e
where e.deptno = d.deptno(+) 

oracle中支持全外連接第股,Mysql中不支持

select ename,sal,d.deptno,dname
from dept d
full join emp e
on e.deptno = d.deptno

分頁(yè)

mysql中分頁(yè)采取 limit 關(guān)鍵字

select *
from emp
limit 0,10 -- 第一個(gè)參數(shù)0是查詢起始索引,第二個(gè)參數(shù)10是長(zhǎng)度

oracle中采取 ROWNUM 偽列實(shí)現(xiàn)

-- 簡(jiǎn)單使用
select rownum,empno,ename,sal
from emp
where rownum <= 5

-- 注意:它不能在 "本層" 查詢中使用 大于话原,大于等于或between..and 查詢夕吻,原因是rownum永遠(yuǎn)從1開始诲锹,所以需要嵌套,將查詢結(jié)果當(dāng)成普通數(shù)據(jù)涉馅,就可以了
select e.* 
from (select rownum rn1,empno,ename,sal
     from emp
     where rownum < 11) e
where rn1 > 5

-- 有排序
select rownum,e.*
from (select empno,ename,sal
     from emp
     order by sal desc) e
where rownum < 6

-- 有排序归园,又有分頁(yè)
select a.*
from (select rownum rn1,e.*
     from (select empno,ename,sal
          from emp
          order by sal desc) e
     where rownum < 11) a
where rn1 > 5

索引(index)

加快查詢速度,SQL優(yōu)化方案之一

-- 簡(jiǎn)單索引
CREATE TABLE indexTest1(
`id` int(9),
`name` varchar(50),
index(`name`)
)

出現(xiàn)在where條件中稚矿,查詢時(shí)加快查詢速度

select *
from emp
where ename like 'S%' -- 索引有效

select *
from emp
where ename like '%S%' -- 索引無效

主鍵唯一鍵自帶索引庸诱,不需要特意加索引

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市晤揣,隨后出現(xiàn)的幾起案子桥爽,更是在濱河造成了極大的恐慌,老刑警劉巖昧识,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钠四,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡跪楞,警方通過查閱死者的電腦和手機(jī)缀去,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甸祭,“玉大人缕碎,你說我怎么就攤上這事〕鼗В” “怎么了阎曹?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)煞檩。 經(jīng)常有香客問我,道長(zhǎng)栅贴,這世上最難降的妖魔是什么斟湃? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮檐薯,結(jié)果婚禮上凝赛,老公的妹妹穿的比我還像新娘。我一直安慰自己坛缕,他們只是感情好墓猎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赚楚,像睡著了一般毙沾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宠页,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天左胞,我揣著相機(jī)與錄音寇仓,去河邊找鬼。 笑死烤宙,一個(gè)胖子當(dāng)著我的面吹牛遍烦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躺枕,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼服猪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了拐云?” 一聲冷哼從身側(cè)響起罢猪,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慨丐,沒想到半個(gè)月后坡脐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡房揭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年备闲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捅暴。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恬砂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蓬痒,到底是詐尸還是另有隱情泻骤,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布梧奢,位于F島的核電站狱掂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亲轨。R本人自食惡果不足惜趋惨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惦蚊。 院中可真熱鬧器虾,春花似錦、人聲如沸蹦锋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莉掂。三九已至葛圃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背装悲。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工昏鹃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诀诊。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓洞渤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親属瓣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子载迄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 索引概念: 索引是關(guān)系數(shù)據(jù)庫(kù)中用于存放每一條記錄的一種對(duì)象,主要目的是加快數(shù)據(jù)的讀取速度和完整性檢查抡蛙。建立索引...
    程序大視界閱讀 416評(píng)論 0 2
  • 索引概念: 索引是關(guān)系數(shù)據(jù)庫(kù)中用于存放每一條記錄的一種對(duì)象护昧,主要目的是加快數(shù)據(jù)的讀取速度和完整性檢查。建立索引...
    程序大視界閱讀 762評(píng)論 0 3
  • 什么是數(shù)據(jù)庫(kù)粗截? 數(shù)據(jù)庫(kù)是存儲(chǔ)數(shù)據(jù)的集合的單獨(dú)的應(yīng)用程序惋耙。每個(gè)數(shù)據(jù)庫(kù)具有一個(gè)或多個(gè)不同的API,用于創(chuàng)建熊昌,訪問绽榛,管理...
    chen_000閱讀 4,032評(píng)論 0 19
  • 索引 數(shù)據(jù)庫(kù)中的查詢操作非常普遍灭美,索引就是提升查找速度的一種手段 索引的類型 從數(shù)據(jù)結(jié)構(gòu)角度分 1.B+索引:傳統(tǒng)...
    一凡呀閱讀 2,882評(píng)論 0 8
  • MySQL技術(shù)內(nèi)幕:SQL編程 姜承堯 第1章 SQL編程 >> B是由MySQL創(chuàng)始人之一Monty分支的一個(gè)版...
    沉默劍士閱讀 2,412評(píng)論 0 3