Oracle與SQL SERVER概念--d_第1頁(yè)
Oracle與SQL SERVER概念--d_第2頁(yè)
Oracle與SQL SERVER概念--d_第3頁(yè)
Oracle與SQL SERVER概念--d_第4頁(yè)
Oracle與SQL SERVER概念--d_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Oracle 與SQL SERVER概念 - ·Oracle的服務(wù)和數(shù)據(jù)庫(kù) 相當(dāng)于 MS SQL的數(shù)據(jù)庫(kù)服務(wù); ·Oracle的服務(wù)= 后臺(tái)進(jìn)程+相關(guān)內(nèi)存 ·數(shù)據(jù)庫(kù)= 數(shù)據(jù)文件的集合 Oracle的服務(wù)完全可以與數(shù)據(jù)庫(kù)文件脫離開(kāi)來(lái);Oracle中的Schema與MS SQL中的數(shù)據(jù)庫(kù)。 Schema“方案”是一個(gè)用戶(hù)所擁有所有對(duì)象的集合。 “對(duì)象”包括表、視圖、實(shí)例化視圖、序列、過(guò)程、函數(shù)、程序包、同義詞。 Oracle類(lèi)似于MSSQL的數(shù)據(jù)庫(kù)大致過(guò)程如下: ·建立數(shù)據(jù)庫(kù)表空間(相當(dāng)于MSSQL的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件) ·建立臨時(shí)表空間(相單于MS

2、SQL的數(shù)據(jù)庫(kù)的事務(wù)日志文件) ·建立用戶(hù),它的缺省空間和臨時(shí)表空間是剛建立的兩個(gè)表空間 ·給用戶(hù)授權(quán),最起碼得角色權(quán)限是Connect的角色 ·以該用戶(hù)登陸,創(chuàng)建自己的表、視圖、實(shí)例化視圖、序列、過(guò)程、函數(shù)、程序包、同義詞等。 關(guān)于Oracle Manager Server與MS SQL的Enterprise manager - DBA Studio工具提供了與MS SQL的Enterprise manager同樣的功用,但應(yīng)該說(shuō)兩者有很大的區(qū)別。 對(duì)于一般是用來(lái)說(shuō),DBA Studio工具已經(jīng)足夠了。但這里有必要對(duì)Oracle Manager Server解釋

3、一下: 它是Oracle管理分布式數(shù)據(jù)庫(kù)的服務(wù),注意她是服務(wù)。 它缺省并不安裝 它需要有自己管理所需要的資料庫(kù)。在某個(gè)數(shù)據(jù)庫(kù)中需要建立相應(yīng)的用戶(hù) 它的登陸需要身份驗(yàn)證,注意這里的身份驗(yàn)證,與管理所需要的資料庫(kù)的用戶(hù)不是一個(gè)概念,也不是數(shù)據(jù)庫(kù)中的SYS,system; 它的默認(rèn)用戶(hù)是oem_temp sysman > 使用她,在管理端要啟動(dòng)Manager Server服務(wù)和智能代理服務(wù)(OracleAgent),被管理的數(shù)據(jù)庫(kù)服務(wù)器要啟動(dòng)智能代理服務(wù)(oracleagent). 關(guān)于Oracle的SYS,system的用戶(hù)與MSSQL的Master比較 - MSSQL的Master數(shù)據(jù)庫(kù)儲(chǔ)

4、存了當(dāng)前數(shù)據(jù)庫(kù)服務(wù)的一些配置信息,如數(shù)據(jù)庫(kù)設(shè)備、字符集、數(shù)據(jù)文件、登陸帳號(hào)、擁有的數(shù)據(jù)庫(kù)、整個(gè)服務(wù)參數(shù)配置等信息。 Oracle的sys存儲(chǔ)了Oracle服務(wù)或者實(shí)例的信息及所有用戶(hù)的數(shù)據(jù)字典信息。 Oracle的system用戶(hù)擁有數(shù)據(jù)字典是視圖信息,有了這些視圖,我們查詢(xún)數(shù)據(jù)庫(kù)的信息就特別方便。缺省情況下,system用戶(hù)擁有DBA系統(tǒng)角色權(quán)限, 而sys不僅擁有DBA的權(quán)限還擁有sysdba的權(quán)限。 DBASYSDBA系統(tǒng)角色的區(qū)別: 首先說(shuō)明一下oracle服務(wù)的創(chuàng)建過(guò)程:創(chuàng)建實(shí)例、啟動(dòng)實(shí)例、創(chuàng)建數(shù)據(jù)庫(kù)(SYSTEM表空間是必需的) 其次啟動(dòng)過(guò)程:實(shí)例啟動(dòng)、裝載數(shù)據(jù)庫(kù)、打開(kāi)數(shù)據(jù)庫(kù) Or

5、acle中新的數(shù)據(jù)庫(kù)對(duì)象:實(shí)例化視圖、快照、序列、程序包、同義詞、抽象的數(shù)據(jù)類(lèi)型 - ·實(shí)例化視圖又稱(chēng)顯形圖:實(shí)例化說(shuō)明它有自己的存儲(chǔ)空間;視圖:說(shuō)明它的數(shù)據(jù)源于其他表數(shù)據(jù)。 ·實(shí)例化視圖中的數(shù)據(jù),設(shè)置為隔一段時(shí)間更新數(shù)據(jù),更新的模式可以定義為完全更新和增量更新。 ·快照基本上同實(shí)例化視圖,只不過(guò)數(shù)據(jù)來(lái)源不同,快照數(shù)據(jù)來(lái)源于遠(yuǎn)程數(shù)據(jù)庫(kù),而實(shí)例化視圖來(lái)源于本地?cái)?shù)據(jù)表 ·序列,相當(dāng)于MSSQL中的identify列,它是一個(gè)數(shù)字順序列表 ·程序包:它是過(guò)程、函數(shù)、全局變量的集合;它封裝了私有變量、私有過(guò)程和私有函數(shù)。如:DBMS_OUT包 

6、3;同義詞:是對(duì)數(shù)據(jù)庫(kù)中的對(duì)象的別名,同義詞可以是全局的也可以是私有的(屬于某個(gè)用戶(hù)的)如:tab,col等 ·抽象的數(shù)據(jù)類(lèi)型:類(lèi)似于C中的結(jié)構(gòu)體或Pascal記錄類(lèi)型。 Oracle數(shù)據(jù)庫(kù)連接和 Mssql遠(yuǎn)程連接 - 兩者都是為了實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)的操作,兩者都能實(shí)現(xiàn)分布式事務(wù) Oracle回滾斷和MSSQL的數(shù)據(jù)庫(kù)事物日志文件 - 回滾段提供了事務(wù)回滾需要使用的數(shù)據(jù)變化以前的映象,這些映象是按條目?jī)?chǔ)存的,如果這些條目過(guò)少,一個(gè)事務(wù)等待另一個(gè)事務(wù)的幾率 增大,就會(huì)影響數(shù)據(jù)庫(kù)的性能。缺省安裝時(shí),提供一個(gè)系統(tǒng)回滾段它在system表空間。 為了提高性能,system表空間不應(yīng)儲(chǔ)存有任何

7、數(shù)據(jù)字典信息以外的信息。 MSSQL數(shù)據(jù)庫(kù)事務(wù)日志文件功能類(lèi)同于回滾段,只不過(guò)它是同特定的數(shù)據(jù)庫(kù)密切相關(guān)的。 關(guān)于數(shù)據(jù)表的管理 - 超大型數(shù)據(jù)表的管理: oracle和MsSQL都提供了一種“把數(shù)據(jù)文件及其索引存放在一個(gè)特定的數(shù)據(jù)文件或表空間里”方法 Oracle將表及索引分區(qū)儲(chǔ)存,即按字段值的范圍進(jìn)行分區(qū)存儲(chǔ)。 ·Oracle索引組織表和Sqlserver簇索引表 :兩者的數(shù)據(jù)存放順序都是按照索引值的順序存放的 ·無(wú)事務(wù)回滾概念的表,對(duì)這種表的操作不存在事務(wù)的概念;ORacle提供了建表參數(shù)nologging,使對(duì)該表的操作不參與事務(wù)的回滾。 ·索引:oracl

8、e提供了多種MSSQL沒(méi)有的索引類(lèi)型,如:位圖索引等 外連接 =- ·MSSQL支持兩種形式表之間連接 (1)從SYSBASE繼承來(lái)的形式: 1)字段1*=字段2(左連接) 2)字段1=*字段2(右連接) 3)沒(méi)有這種形式的全外連接語(yǔ)法 (2)標(biāo)準(zhǔn)的外連接語(yǔ)法: 1)leftouter join on 邏輯表達(dá)式 2)rightouter join on 邏輯表達(dá)式 3)fullouter jion (全外連接) on 邏輯表達(dá)式 ·Oracle不支持標(biāo)準(zhǔn)的外連接語(yǔ)法,也沒(méi)有全外連接(這是他的缺陷)。 1)字段1=字段2(+)(左連接) 2)字段1(+)=字段2(右連接)

9、·使用外連接語(yǔ)句的用處 (1)不想因?yàn)楸磉B接而使主表數(shù)據(jù)行丟失 (2)查找某條記錄在表A存在,而在B表不存在,按常規(guī)做法用not in(select.查詢(xún)語(yǔ)句)語(yǔ)法。 使用not in 最大的缺點(diǎn)就是速度慢,原因是每行都去做select查詢(xún)語(yǔ)句;而使用如下語(yǔ)句則會(huì)更好: select tu_company.* from TU_company left join TU_Comp_agent on TU_company.id=tu_comp_pCode where TU_comp_agent.id is null; 觸發(fā)器 = ·MSSQL僅有表的觸發(fā)器,而且觸發(fā)時(shí)機(jī)不夠豐富,

10、如插入觸發(fā)器不區(qū)分單條插入還是多條插入;也不區(qū)分插入前觸發(fā)還是插入后觸發(fā)。碰到 多條數(shù)據(jù)的插入,需要使用游標(biāo)處理每條插入的數(shù)據(jù)。 ·Oracle提供的觸發(fā)器不僅有基于表的觸發(fā)器,而且還有其它類(lèi)型的,例如數(shù)據(jù)庫(kù)計(jì)的觸發(fā)器:數(shù)據(jù)庫(kù)的啟動(dòng)、數(shù)據(jù)庫(kù)關(guān)閉。對(duì)于表級(jí)的觸發(fā)器 區(qū)分單條插入還是多條插入,也區(qū)分插入前觸發(fā)還是插入后觸發(fā) 表數(shù)據(jù)復(fù)制 - ·庫(kù)內(nèi)數(shù)據(jù)復(fù)制 ·MSSQL Insert into 復(fù)制表名稱(chēng) select 語(yǔ)句(復(fù)制表已經(jīng)存在) select 字段列表 into 復(fù)制表名 from 表(復(fù)制表不存在) ·Oracle Insert into 復(fù)制

11、表名稱(chēng) select 語(yǔ)句(復(fù)制表已經(jīng)存在) create table 復(fù)制表名稱(chēng) as select 語(yǔ)句(復(fù)制表不存在) ·文本文件轉(zhuǎn)入,轉(zhuǎn)出的批量處理 ·MSSQL BCP命令行程序 ·Oracle SQLLDR命令行程序 多表更新、刪除 - 一條更新語(yǔ)句是不能更新多張表的,除非使用觸發(fā)器隱含更新,這里的意思是說(shuō):根據(jù)其他表數(shù)據(jù)更新你要更新的表。 ·MSSQL update a set 字段1=B表子段表達(dá)式,字段2=B表子段表達(dá)式,。from B where 邏輯表達(dá)式 ·ORACLE update a set 字段1=(Select子

12、段表達(dá)式 from B where .),字段2=(Select子段表達(dá)式 from B where .),.from B where 邏輯表達(dá)式 就以上問(wèn)題來(lái)看假如A需要多個(gè)子段更新,MSSQL更簡(jiǎn)練! 關(guān)于存儲(chǔ)過(guò)程或函數(shù)中使用的臨時(shí)表 - 兩者都有這個(gè)功能。臨時(shí)表最主要的好處是,操作不留任何痕跡、不產(chǎn)生日志,所以速度快。 ·MSSQL Create table #表名(.),或者select 字段表達(dá)式列表 INTo #表名稱(chēng) FRom 表名稱(chēng)前加#,這些臨時(shí)表都是旨在一個(gè)數(shù)據(jù)庫(kù)連接會(huì)話(huà)期間有效。 ·ORACLE create global temporary tabl

13、e,加上global就是全局的臨時(shí)表(所有數(shù)據(jù)庫(kù)連接會(huì)話(huà)都是可見(jiàn)的),否則為私有(在一個(gè)數(shù)據(jù)庫(kù)連接會(huì)話(huà)期間有效)。 動(dòng)態(tài)執(zhí)行SQL語(yǔ)句 - ·在存儲(chǔ)過(guò)程中的參數(shù)中傳遞一個(gè)表名或者在過(guò)程體力動(dòng)態(tài)生成一個(gè)SQL語(yǔ)句。 MSSQL: declare count int declare Sql nvarchar(200) set sql=N'select count(*) from sysobjects' exec sp_executesql sql,N'i int output',count output ORACLE: (1)程序包DBMS_SQL,執(zhí)行一

14、個(gè)語(yǔ)句的過(guò)程: 打開(kāi)游標(biāo)(OPen_cursor,對(duì)于非查詢(xún)語(yǔ)句,無(wú)此過(guò)程) 分析語(yǔ)句(parse) 綁定變量(bind_variable) 執(zhí)行語(yǔ)句(execute) 關(guān)閉游標(biāo)(close_cursor,對(duì)于排序查詢(xún)語(yǔ)句,無(wú)此過(guò)程) (2)Execute immediate ls_SQL 數(shù)據(jù)庫(kù)備份和恢復(fù) - MSSQL: (1)數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出DTS工具,如果數(shù)據(jù)源和目的都是MSSQL則可以完全復(fù)制數(shù)據(jù)庫(kù)的結(jié)構(gòu)(表、視圖、索引、觸發(fā)器、規(guī)則、默認(rèn)、存儲(chǔ)過(guò)程、自定義函數(shù)、表數(shù)據(jù)等) (2)數(shù)據(jù)庫(kù)備份和還原命令: BackUp database Restore database 導(dǎo)出的數(shù)據(jù)文件還可以壓縮,數(shù)據(jù)庫(kù)備份和還原方式可以是增量和完全的。 (3)數(shù)據(jù)庫(kù)的附加attach 只要數(shù)據(jù)庫(kù)的原始數(shù)據(jù)和日志文件沒(méi)有破壞,就可以使用命令:SP_ADDACH_DB.這種情況有時(shí)候回出現(xiàn)問(wèn)題:比方說(shuō)你見(jiàn)了登陸帳號(hào), 不是使用缺省的登陸帳號(hào)SA,由于登陸帳號(hào)的信息存放在master數(shù)據(jù)庫(kù)中,所以使用原

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論