Oracle8 對(duì)象關(guān)系數(shù)據(jù)庫(kù)_第1頁(yè)
Oracle8 對(duì)象關(guān)系數(shù)據(jù)庫(kù)_第2頁(yè)
Oracle8 對(duì)象關(guān)系數(shù)據(jù)庫(kù)_第3頁(yè)
Oracle8 對(duì)象關(guān)系數(shù)據(jù)庫(kù)_第4頁(yè)
Oracle8 對(duì)象關(guān)系數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩132頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Oracle8 對(duì)象關(guān)系數(shù)據(jù)庫(kù)高端數(shù)據(jù)據(jù)庫(kù)-提提高DBMS管理上限限Oracle8對(duì)象關(guān)系系數(shù)據(jù)庫(kù)庫(kù)擴(kuò)充的類類型系統(tǒng)統(tǒng)對(duì)象關(guān)系系數(shù)據(jù)庫(kù)庫(kù)Oracle8數(shù)據(jù)庫(kù)系系統(tǒng)一、高端端數(shù)據(jù)庫(kù)庫(kù)-提高高DBMS管理上限限oracle7oracle8數(shù)據(jù)庫(kù)大大小32TB512KTB數(shù)據(jù)文件件個(gè)數(shù)1-4K64-256M每表包含含列數(shù)數(shù)2541000每表的LOB列數(shù)1long1000CHAR長(zhǎng)度2542000VARCHAR長(zhǎng)度20004000索引列數(shù)數(shù)1632支持上萬(wàn)萬(wàn)個(gè)并發(fā)發(fā)用戶多線程服服務(wù)器(用少量量的服務(wù)務(wù)器端進(jìn)進(jìn)程管理理大量的的客戶端端用戶。Net8(SQL*net)連接管理理器連連接池(TNS資源)、多

2、路傳傳輸、應(yīng)應(yīng)用請(qǐng)求求集中化化更有效地地使用網(wǎng)網(wǎng)絡(luò)資源源避免操作作系統(tǒng)對(duì)對(duì)服務(wù)器器網(wǎng)絡(luò)連連接數(shù)的的限制客戶端(服務(wù)器器)服服務(wù)務(wù)器一、高端端數(shù)據(jù)庫(kù)庫(kù)-提高高DBMS管理上限限網(wǎng)絡(luò)層透明網(wǎng)絡(luò)絡(luò)底層協(xié)議適配配器二、擴(kuò)充充的類型型系統(tǒng)-對(duì)象關(guān)系系數(shù)據(jù)庫(kù)庫(kù)關(guān)系模型型與對(duì)象象模型新的數(shù)據(jù)據(jù)類型-對(duì)象(記錄)類型對(duì)象表面向?qū)?duì)象數(shù)據(jù)據(jù)庫(kù)設(shè)計(jì)計(jì)收集類型型(數(shù)組組與嵌套套表)對(duì)象與視視圖數(shù)據(jù)庫(kù)新新的應(yīng)用用領(lǐng)域計(jì)算機(jī)輔輔助設(shè)計(jì)計(jì)CAD數(shù)據(jù)庫(kù)必必須存儲(chǔ)儲(chǔ)和處理理與工程程設(shè)計(jì)相相關(guān)的數(shù)數(shù)據(jù)(產(chǎn)產(chǎn)品部件件及相互互關(guān)系、設(shè)計(jì)版版本)計(jì)算機(jī)輔輔助軟件件工程數(shù)據(jù)庫(kù)中中存儲(chǔ)軟軟件開發(fā)發(fā)人員用用到的各各種數(shù)據(jù)據(jù),包括括源代碼碼

3、、模塊塊之間依依賴關(guān)系系、變量量定義、文檔多媒體數(shù)數(shù)據(jù)庫(kù)聲音、視視頻、圖圖象辦公信息息系統(tǒng)超文本數(shù)數(shù)據(jù)庫(kù)應(yīng)用需要要新的數(shù)數(shù)據(jù)類型型論論文文檢索系系統(tǒng)論文標(biāo)題題作者列表表(第一一作者,第二作作者,找找出某人人參與撰撰寫的所所有論文文)檢索關(guān)鍵鍵字發(fā)表日期期(年月月日分開開)傳統(tǒng)關(guān)系系數(shù)據(jù)庫(kù)庫(kù)的數(shù)據(jù)據(jù)類型復(fù)雜屬性性只能拆拆分成并并列的單單一屬性性姓名,地地址(省省、市、區(qū)、街街道、門門牌號(hào))本來(lái)是一一個(gè)結(jié)合合緊密的的整體,在關(guān)系系數(shù)據(jù)庫(kù)庫(kù)中卻只只能拆成成單一屬屬性,與與其他屬屬性并列列(如姓姓名、年年齡等),沒(méi)有有反映出出它們的的緊密關(guān)關(guān)系。無(wú)法表示示變長(zhǎng)的的屬性家庭記錄錄有幾個(gè)個(gè)孩子長(zhǎng)字段設(shè)幾個(gè)

4、字字段(不不好估計(jì)計(jì))家庭編號(hào)號(hào)戶主子女1子女2子女3傳統(tǒng)關(guān)系系數(shù)據(jù)庫(kù)庫(kù)的數(shù)據(jù)據(jù)類型無(wú)法直接接表示嵌嵌套表例:一張張發(fā)貨單單,發(fā)三三種貨物物:放3條記記錄,但但公共信信息存3遍(查查詢方便便)拆成兩張張表(發(fā)發(fā)貨單,發(fā)送貨貨物),需要連連接,費(fèi)費(fèi)時(shí),且且要清楚楚表與表表的關(guān)系系貨單號(hào)發(fā)貨人貨物日期發(fā)往地貨物名稱稱價(jià)格數(shù)量關(guān)系數(shù)據(jù)據(jù)庫(kù)的數(shù)數(shù)據(jù)模型型數(shù)據(jù)模型型是模型型化數(shù)據(jù)據(jù)和信息息的工具具?,F(xiàn)實(shí)世界界認(rèn)識(shí)抽象信息世界界概念念數(shù)據(jù)模模型機(jī)器世界界DBMS支持的數(shù)數(shù)據(jù)模型關(guān)系模型型轉(zhuǎn)換數(shù)據(jù)模型型演變文件系統(tǒng)統(tǒng)(OS)層次模型型網(wǎng)網(wǎng)狀模型型關(guān)關(guān)系模型型(DB)特點(diǎn):面向記錄錄,信息息由定長(zhǎng)長(zhǎng)記錄組組成

5、。記錄簡(jiǎn)單單(短小小)。原子字段段,字段段不再含含有結(jié)構(gòu)構(gòu)。關(guān)系模型型的特點(diǎn)點(diǎn)強(qiáng)調(diào)數(shù)據(jù)據(jù)的獨(dú)立立性(以以數(shù)據(jù)為為中心),數(shù)據(jù)據(jù)與程序序分離。采用關(guān)系系模型、概念單單一,實(shí)實(shí)體和聯(lián)聯(lián)系都是是用關(guān)系系來(lái)表示示。關(guān)系必須須是規(guī)范范化的關(guān)關(guān)系,要要求每一一分量不不可再分分。支持關(guān)系系語(yǔ)言,具有高高度非過(guò)過(guò)程化,支持集集合運(yùn)算算通過(guò)外來(lái)來(lái)碼實(shí)現(xiàn)現(xiàn)表的連連接(多多表查詢?cè)儯㎡racle8擴(kuò)擴(kuò)充的類類型系統(tǒng)統(tǒng)是對(duì)關(guān)系系數(shù)據(jù)模模型進(jìn)行行的擴(kuò)充充。提供更為為豐富的的面向?qū)?duì)象的類類型系統(tǒng)統(tǒng)。擴(kuò)充的類類型系統(tǒng)統(tǒng)允許元元組的屬屬性值為為復(fù)雜類類型,在在關(guān)系查查詢語(yǔ)言言中增加加處理新新數(shù)據(jù)類類型的成成分。既保留關(guān)關(guān)系

6、模型型基礎(chǔ)又提高建建模能力力對(duì)象關(guān)系系模型為為希望使使用面向向?qū)ο筇靥卣鞯年P(guān)關(guān)系數(shù)據(jù)據(jù)庫(kù)用戶戶提供可可能。面向?qū)ο笙蟮幕颈靖拍蠲嫦驅(qū)ο笙蠓椒ㄊ鞘且砸饨鉀Q的問(wèn)問(wèn)題中所所涉及到到的各種種對(duì)象為為主要考考慮因素素。對(duì)象是一一種看問(wèn)問(wèn)題的觀觀點(diǎn),是是對(duì)現(xiàn)實(shí)實(shí)世界各各種元素素的一種種抽象。對(duì)象既既含數(shù)據(jù)據(jù)又含功功能,因因此具有有自身處處理數(shù)據(jù)據(jù)的能力力。對(duì)象象被認(rèn)為為是迄今今為止最最接近真真實(shí)事物物的數(shù)據(jù)據(jù)抽象?,F(xiàn)實(shí)世界界中對(duì)象象有兩個(gè)個(gè)共同的的特點(diǎn):一方面,它們都都有自己己的狀態(tài)態(tài)。如一一臺(tái)電視視機(jī)有自自己的擺擺放位置置,有關(guān)關(guān)機(jī)和開開機(jī)狀態(tài)態(tài),此刻刻正在播播放某一一頻道的的電視節(jié)節(jié)目等另一方面面

7、,它們們又都有有自己的的行為,如電視視機(jī)的開開機(jī)、關(guān)關(guān)機(jī)、調(diào)調(diào)臺(tái)等。面向?qū)ο笙蟮幕颈靖拍顑?nèi)部實(shí)現(xiàn)現(xiàn)(封裝)接口屬性、方方法能動(dòng)的主主體使電腦貼貼近人腦腦的思維維模式(減少人人認(rèn)識(shí)問(wèn)問(wèn)題時(shí)的的認(rèn)識(shí)空空間和計(jì)計(jì)算機(jī)處處理問(wèn)題題時(shí)的方方法空間間的不一一致性)。實(shí)現(xiàn)軟件件的復(fù)用用(軟件件芯片)。對(duì)象的屬屬性與方方法面向?qū)ο笙蟪绦蛟O(shè)設(shè)計(jì)中的的對(duì)象是是現(xiàn)實(shí)世世界對(duì)象象的模型型化,它它同樣具具有狀態(tài)態(tài)和行為為。對(duì)象的狀狀態(tài)用屬屬性來(lái)維維護(hù),對(duì)象的行行為用方方法來(lái)實(shí)實(shí)現(xiàn)。因此可以以簡(jiǎn)單地地講,對(duì)對(duì)象是面面向?qū)ο笙蟮某绦蛐蛟O(shè)計(jì)模模式,它它由描述述對(duì)象狀狀態(tài)的屬屬性(變變量)和和用來(lái)實(shí)實(shí)現(xiàn)對(duì)象象行為的的方法(代

8、碼)組成。對(duì)象與類類相關(guān)對(duì)象象的集合合稱為類類(Class)類是對(duì)象象的抽象象及描述述,它是是具有統(tǒng)統(tǒng)一屬性性和方法法的多個(gè)個(gè)對(duì)象的的統(tǒng)一描描述體,是用來(lái)來(lái)定義一一組對(duì)象象共有屬屬性和方方法的模模板。類是用來(lái)來(lái)創(chuàng)建對(duì)對(duì)象實(shí)例例的樣板板,它包包含所創(chuàng)創(chuàng)建對(duì)象象的狀態(tài)態(tài)描述和和方法的的定義。類是一一個(gè)型,而對(duì)象象則是這這個(gè)型的的一個(gè)實(shí)實(shí)例。類是靜態(tài)態(tài)概念,而對(duì)象象則是一一個(gè)動(dòng)態(tài)態(tài)概念,因?yàn)橹恢挥性谶\(yùn)運(yùn)行時(shí)才才給對(duì)象象分配空空間,對(duì)對(duì)象才真真正存在在。面向?qū)ο笙蟮臄?shù)據(jù)據(jù)模型在一些應(yīng)應(yīng)用中,用戶將將數(shù)據(jù)庫(kù)庫(kù)中的數(shù)數(shù)據(jù)看作作是一組組對(duì)象而而非一組組記錄。面向?qū)ο笙蟮臄?shù)據(jù)據(jù)模型是是面向?qū)?duì)象程序序設(shè)計(jì)思思

9、想在數(shù)數(shù)據(jù)庫(kù)系系統(tǒng)中的的應(yīng)用?;舅枷胂雽?shù)數(shù)據(jù)和操操作這些些數(shù)據(jù)的的程序代代碼封裝裝在一個(gè)個(gè)對(duì)象里里。將一個(gè)對(duì)對(duì)象存儲(chǔ)儲(chǔ)在數(shù)據(jù)據(jù)庫(kù)中:對(duì)象的數(shù)數(shù)據(jù)部分分必須針針對(duì)各個(gè)個(gè)對(duì)象分分別存儲(chǔ)儲(chǔ)。而實(shí)現(xiàn)類類方法的的程序代代碼應(yīng)該該和類的的定義一一起作為為數(shù)據(jù)庫(kù)庫(kù)模式的的一部分分存儲(chǔ)。面向?qū)ο笙髷?shù)據(jù)庫(kù)庫(kù)數(shù)據(jù)庫(kù)中中不是只只存儲(chǔ)單單純的數(shù)數(shù)據(jù),而而是存儲(chǔ)儲(chǔ)包含屬屬性和方方法的對(duì)對(duì)象。對(duì)于一個(gè)個(gè)數(shù)據(jù)庫(kù)庫(kù)對(duì)象,可定義義在其上上運(yùn)行的的過(guò)程和和函數(shù)。使數(shù)據(jù)據(jù)庫(kù)中的的數(shù)據(jù)和和訪問(wèn)該該數(shù)據(jù)的的方法聯(lián)聯(lián)系起來(lái)來(lái),可標(biāo)標(biāo)準(zhǔn)化數(shù)數(shù)據(jù)訪問(wèn)問(wèn)的方法法并提高高對(duì)象的的可復(fù)用用性。應(yīng)用邏輯輯從應(yīng)用用程序中中移動(dòng)到到數(shù)據(jù)庫(kù)庫(kù)中(對(duì)對(duì)

10、象方法法)創(chuàng)建通用用的數(shù)據(jù)據(jù)庫(kù)對(duì)象象,并能能成為數(shù)數(shù)據(jù)庫(kù)對(duì)對(duì)象的標(biāo)標(biāo)準(zhǔn),可可實(shí)現(xiàn)數(shù)數(shù)據(jù)庫(kù)對(duì)對(duì)象的重重用。數(shù)據(jù)模型型現(xiàn)實(shí)世界界認(rèn)識(shí)抽象信息世界界概念念數(shù)據(jù)模模型機(jī)器世界界DBMS支持的數(shù)數(shù)據(jù)模型對(duì)象模型型轉(zhuǎn)換對(duì)象模型型與關(guān)系系模型對(duì)象模型型對(duì)象類型型的屬性性描述對(duì)象類型型的方法法封裝了了操作該該對(duì)象的的代碼。提供了了處理數(shù)數(shù)據(jù)庫(kù)中中數(shù)據(jù)的的界面。關(guān)系模型型二維表中中列的定定義沒(méi)有方法法另編程可使用操操作某數(shù)數(shù)據(jù)庫(kù)表表的存儲(chǔ)儲(chǔ)過(guò)程。面向?qū)ο笙髷?shù)據(jù)模模型中的的類概念念實(shí)體體集概念念。面向?qū)ο笙髷?shù)據(jù)模模型中的的對(duì)象概概念實(shí)實(shí)體概念念對(duì)象模型型與關(guān)系系模型關(guān)系模型型可用二二維表來(lái)來(lái)表示關(guān)關(guān)系表表:屬性二

11、二維表的的列元組二二維表的的行對(duì)象模型型可用二二維表來(lái)來(lái)表示對(duì)對(duì)象表表:用一個(gè)類類(對(duì)對(duì)象類型型)定義義一個(gè)對(duì)對(duì)象表類的屬性性 二二維表表的列對(duì)象(類類的實(shí)例例)二二維表表的行(行對(duì)象象)通過(guò)對(duì)象象調(diào)用對(duì)對(duì)象方法法。Oracle的的擴(kuò)充類類型Oracle是一個(gè)開開放的類類型系統(tǒng)統(tǒng),增加加了復(fù)雜雜的數(shù)據(jù)據(jù)類型以以及用戶戶自定義義類型用戶定義義的數(shù)據(jù)據(jù)類型使使得可以以在數(shù)據(jù)據(jù)庫(kù)中為為現(xiàn)實(shí)世世界的對(duì)對(duì)象建模模對(duì)象類型型(記錄錄類型)數(shù)組類型型嵌套表類類型創(chuàng)建對(duì)象象表,實(shí)實(shí)現(xiàn)面向向?qū)ο蟮牡臄?shù)據(jù)庫(kù)庫(kù)設(shè)計(jì)(而非關(guān)關(guān)系型數(shù)數(shù)據(jù)庫(kù)設(shè)設(shè)計(jì)。應(yīng)用邏輯輯從應(yīng)用用程序中中移動(dòng)到到數(shù)據(jù)庫(kù)庫(kù)中(對(duì)對(duì)象方法法)擴(kuò)充類型型的

12、不同同應(yīng)用對(duì)象類型型數(shù)數(shù)組類型型嵌嵌套表類類型關(guān)系表對(duì)對(duì)象表對(duì)象類型利用對(duì)象象類型定定義復(fù)復(fù)合數(shù)據(jù)據(jù)類型用戶自定定義數(shù)據(jù)據(jù)類型使用對(duì)象象類型定定義一個(gè)個(gè)記錄數(shù)數(shù)據(jù)類型型CREATETYPEname_typeASOBJECT(first_nameVARCHAR2(4),last_nameVARCHAR2(4);CREATETYPEaddress_typeASOBJECT(cityVARCHAR2(10),streetVARCHAR2(10),zipNUMBER(6);CREATETABLEworker(widNUMBER(5)PRIMARYKEY,wnamename_type ,addressa

13、ddress_type);對(duì)象類型型數(shù)據(jù)的的操作使用對(duì)象類型型聲明了關(guān)系表中的列,DML語(yǔ)句必須須用一些些特殊的的語(yǔ)法插入新記記錄時(shí),對(duì)于對(duì)對(duì)象類型型的列,要使用用構(gòu)造函函數(shù)構(gòu)造造出對(duì)應(yīng)應(yīng)類型的的數(shù)據(jù)。構(gòu)造函數(shù)數(shù)是對(duì)象象類型的的特殊方方法,利利用此方方法為該該類型創(chuàng)創(chuàng)建對(duì)象象。構(gòu)造造方法的的名稱與與對(duì)象類類型(類類)同名名。對(duì)記錄型型數(shù)據(jù)的的分量進(jìn)進(jìn)行操作作時(shí),要要使用“別名”對(duì)象類型型數(shù)據(jù)的的操作插入語(yǔ)句句例:insertintoworkervalues(1,name_type(王,至遠(yuǎn)),address_type(北京,白頤頤路5號(hào)號(hào),100084);insertintoworkerval

14、ues(2,name_type(張,大年),address_type(天津,康寧寧里20號(hào),300072);insertintoworkervalues(3,name_type(趙,力平),address_type(上海,南京京路23號(hào),200092);對(duì)象類型型數(shù)據(jù)的的查詢查詢語(yǔ)句句1select*from worker;WIDNAME(FIRST_NAME, LAST_NAME)ADDRESS(CITY,STREET,ZIP)-1NAME_TYPE(王,至遠(yuǎn)遠(yuǎn))ADDRESS_TYPE(北京, 白白頤路5號(hào), 100084)2NAME_TYPE(張,大年年)ADDRESS_TYPE(天津,

15、 康康寧里20號(hào),300072)3NAME_TYPE(趙,力平平)ADDRESS_TYPE(上海, 南南京路23號(hào),200092)查詢語(yǔ)句句2selectwid,wname fromworker;WIDNAME(FIRST_NAME,LAST_NAME)-1NAME_TYPE(王,至遠(yuǎn)遠(yuǎn))2NAME_TYPE(張,大年年)3NAME_TYPE(趙,力平平)對(duì)象類型型數(shù)據(jù)的的查詢查詢語(yǔ)句句3(用別別名)selectwid顧客編號(hào)號(hào),w.address.city城市,w.address.street街道,w.address.zip郵編from workerw;顧客編號(hào)號(hào)城城市市街街道道郵郵編編-1

16、北北京白白頤路5號(hào)1000842天天津康康寧里20號(hào)3000723上上海南南京路23號(hào)200092查詢語(yǔ)句句4(別名名的使用用)select*from workerworder byw.address.zip對(duì)象類型型數(shù)據(jù)的的操作修改updateworkerwsetw.address.zip=100083wherewid=1;刪除deletefromworkerwherewid=1;.first_name=王;修改表結(jié)結(jié)構(gòu)altertablecustadd(address1 address_type);不能對(duì)表表修改自定義的的數(shù)據(jù)類類型格

17、式式用戶自定定義數(shù)據(jù)據(jù)類型對(duì)象類型型更加貼貼近現(xiàn)實(shí)實(shí)世界的的數(shù)據(jù)特特征。使用對(duì)象象類型可可以更加加統(tǒng)一、自然地地聲明和和操作表表中的數(shù)數(shù)據(jù)(在整個(gè)數(shù)數(shù)據(jù)庫(kù)中中地址一一致性)創(chuàng)建可為為大家引引用的新新數(shù)據(jù)類類型:創(chuàng)建一個(gè)個(gè)模式(如pub)建立公共共對(duì)象類類型(新新數(shù)據(jù)類類型)設(shè)置必要要的權(quán)限限使用CREATEPROCEDURE new_worker(widNUMBER,_type,addresspub.address_type)自定義數(shù)數(shù)據(jù)類型型上的索索引createindexaaa on worker(wname);ORA-02327:無(wú)法在具具有數(shù)據(jù)據(jù)類型ADT的列上

18、創(chuàng)創(chuàng)建索引引。(即使在在name_type類中定義義了排序序方法也也不可以以)如經(jīng)常進(jìn)進(jìn)行如下下查詢:selectwid顧客編號(hào)號(hào),w.address.city城市,w.address.street街道,w.address.zip郵編from workerwwherew.address.zip=100084;可建索引引如下:createindexI_ziponworker(address.zip);使用對(duì)象象表面向?qū)?duì)象數(shù)據(jù)據(jù)庫(kù)設(shè)計(jì)計(jì)建立對(duì)象象表的類類建類型(對(duì)象類類型聲明明)createtype類型名asobject(屬性名1類類型說(shuō)明明,屬性名2類類型說(shuō)明明,.memberfunction

19、函數(shù)名(參數(shù)數(shù)說(shuō)明)return返回類型型,memberprocedure過(guò)程名(參數(shù)說(shuō)說(shuō)明),) ;方法說(shuō)明明屬性說(shuō)明明對(duì)象屬性性類型對(duì)象類型型必須包包含一個(gè)個(gè)或多個(gè)個(gè)屬性,屬性的的類型可可以是:Oracle的原始數(shù)數(shù)據(jù)類型型、LOB對(duì)象對(duì)象的引引用(REF)收集(COLLECTION)等對(duì)象方法法方法是一一個(gè)過(guò)程程或函數(shù)數(shù),是是對(duì)象類類型定義義的一部部分,是是程序員員編寫的的用于操操縱對(duì)象象屬性的的子程序序,被封封裝在對(duì)對(duì)象類型型中。方法的種種類:成員方法法 (member)構(gòu)造方法法 (constructor)MAP或ORDER方法(排排序方法法)一個(gè)類可可以有多多個(gè)方法法(也可可以不定

20、定義方法法)對(duì)象類型型不存儲(chǔ)儲(chǔ)數(shù)據(jù);必須創(chuàng)創(chuàng)建相應(yīng)應(yīng)的表來(lái)來(lái)存儲(chǔ)數(shù)數(shù)據(jù)編寫方法法代碼建類型體體(實(shí)現(xiàn)現(xiàn)類成員員方法)createtypebody類型名ASmemberfunction函數(shù)方法法名(參數(shù)說(shuō)說(shuō)明)return返回類型型is 說(shuō)明部分分begin執(zhí)行部分分end;memberprocedure過(guò)程方法法名(參參數(shù)說(shuō)明明)is說(shuō)明部分分begin執(zhí)行部分分end;END;方法實(shí)現(xiàn)現(xiàn)方法實(shí)現(xiàn)現(xiàn)建立對(duì)象象表建對(duì)象表表Createtable表名of對(duì)象類型型();例:CREATETYPEemployee_typeASOBJECT(.);CREATETABLEemployeesOFemploy

21、ee_type(empnoconstrainte1primarykey );CREATETYPEBODYemployee_type();表定義的的其他說(shuō)說(shuō)明,如如完整性性約束等等,表的的列不能能再定義義建立對(duì)象象類型例例CREATETYPEemployee_typeASOBJECT(empnoNUMBER(3),enameVARCHAR2(10),salNUMBER(6.2),hiredateDATE ,MEMBERFUNCTIONdays_at_companyRETURNNUMBER,MEMBERPROCEDUREraise_salary(increment_salNUMBER);/創(chuàng)建對(duì)象

22、象表CREATETABLEemployees OF employee_type(PRIMARY KEY(empno),UNIQUE(ename),CHECK(sal300);建立對(duì)象象類型體體CREATEOR REPLACETYPEBODY employee_typeASMEMBERFUNCTIONdays_at_companyRETURNNUMBERISBEGINRETURNfloor(sysdate-hiredate);END;MEMBERPROCEDUREraise_salary(increment_salNUMBER)ISBEGINUPDATEemployeesSETsal=sal+

23、increment_salWHEREempno= SELF.empno;END;END;對(duì)方法的的限制編譯軟件件包中的的函數(shù)或或過(guò)程時(shí)時(shí),可可以使用用PRAGMA編譯指令令通知PL/SQL編譯器禁禁止某方方法對(duì)數(shù)數(shù)據(jù)庫(kù)表表和包中中的變量量讀寫, 當(dāng)方方法體中中出現(xiàn)違違反情況況時(shí),編編譯出出錯(cuò)。格式:PRAGMARESTRICT_REFERENCES(function_name,WNDS , WNPS , RNDS , RNPS );WNDS不允許寫寫數(shù)據(jù)庫(kù)庫(kù)RNDS不允許讀讀數(shù)據(jù)庫(kù)庫(kù)WNPS不允許改改程序包包變量RNPS不允許引引用程序序包變量量對(duì)方法的的限制CREATEOR REPLACET

24、YPEemployee_typeASOBJECT(empnoNUMBER,enameVARCHAR2(10),salNUMBER,hiredateDATE ,MEMBERFUNCTIONdays_at_companyRETURNNUMBER,MEMBERPROCEDUREraise_salary(increment_salNUMBER) ,PRAGMARESTRICT_REFERENCES(days_at_company,WNDS ,WNPS);對(duì)方法的的限制CREATEOR REPLACETYPEBODY employee_typeASMEMBERFUNCTIONdays_at_compan

25、yRETURNNUMBERISBEGINRETURNfloor(sysdate-hiredate);UPDATEemployees SEThiredate=hiredate+30;-END;.END;- -0/0PL/SQL:Compilationunit analysis terminated2/10PLS-00452:子程序DAYS_AT_COMPANY違反了它它的相關(guān)關(guān)編譯指指令對(duì)象類型型-構(gòu)構(gòu)造子方方法Oracle自動(dòng)地為為每個(gè)對(duì)對(duì)象類型型創(chuàng)建一一個(gè)構(gòu)造造方法。構(gòu)造子方方法的名名稱采用用對(duì)象類類型名。構(gòu)造子方方法的參參數(shù)即對(duì)對(duì)象類型型的所有有屬性。構(gòu)造子方方法初始始化一個(gè)個(gè)對(duì)象類類型的

26、實(shí)實(shí)例,并并將它它的屬性性賦值。例:insertintoemployeesvalues(employee_type(1 ,Jone ,500 ,5-10月-1989);對(duì)象表操操作建表createtableemployees of employee_type;插入數(shù)據(jù)據(jù)insertintoemployeesvalues(employee_type(1,Jone,500,5-10月-1989);insertintoemployees-省略略構(gòu)造方方法values(1,Jone,1500, 5-10月-1989);insertintoemployeesvalues(2,smith,700,10-5

27、月-1997);insertintoemployeesvalues(3,king,900,25-12月-2000);獲取行對(duì)對(duì)象value函數(shù)數(shù)value(對(duì)象表別別名)返返回一個(gè)個(gè)行對(duì)象象(對(duì)象象類型)value用于從對(duì)對(duì)象表中中取得對(duì)對(duì)象實(shí)例例。不使用value, SELECT只能返回回一個(gè)對(duì)對(duì)象的各各個(gè)列值值。select*from employees;EMPNOENAMESALHIREDATE-1Jone150005-10月-892smith70010-5月-973king90025-12月 -00selectvalue(e)fromemployeese;VALUE(E)(EMPNO,

28、ENAME, HIREDATE)-EMPLOYEE_TYPE(1, Jone,1500,05-10月-89)EMPLOYEE_TYPE(2, smith, 700,10-5月-97)EMPLOYEE_TYPE(3, king,900,25-12月 -00)對(duì)象表方方法調(diào)用用selectename,hiredatefrom employeeswhereempno=1;EMPNAMEHIREDATE-Jone05-10月-89selectename,e.days_at_company() daysfrom employeesewhereempno=3;EMPNAMEDAYS-king45使用別名名

29、在PL/SQL程序中,取得的的對(duì)象實(shí)實(shí)例必須須被相同同類型的的對(duì)象變變量接收收。例:declareempemployee_type;beginselectvalue(e)intoempfrom employeesewhereempno=1;emp.raise_salary(500);end;/PL/SQL中對(duì)象方法法的調(diào)用用PL/SQL中對(duì)象方法法的調(diào)用用DECLAREemp_variableemployee_type;days_employednumber;BEGINSELECTVALUE( e)INTO emp_variableFROM employeeseWHEREe.empno =3;

30、days_employed := emp_variable.days_at_company();dbms_output.put_line(Daysemployed:|to_char(days_employed);END;/附:PL/SQL輸出與環(huán)環(huán)境設(shè)置置執(zhí)行結(jié)果果:Days employed:26PL/SQL輸出(利利用包過(guò)過(guò)程)dbms_output.put_line() ;環(huán)境設(shè)置置exec dbms_output.enablesetserveroutput on對(duì)象方法法小結(jié)對(duì)象類型型總是有有1到多多個(gè)方法法(構(gòu)造造方法是是隱含方方法,成成員方法法為0n個(gè)。成員方法法可以帶帶輸入輸輸出

31、參數(shù)數(shù)。每個(gè)成員員方法含含有名為為SELF的隱隱含第一一參數(shù),它具有有與對(duì)象象類型自自身相同同的類型型。定義函數(shù)數(shù)方法,如沒(méi)參參數(shù)不用用寫括號(hào)號(hào),但調(diào)調(diào)用時(shí)要要寫括號(hào)號(hào)。定義義方法形形參時(shí),類型不不用寫長(zhǎng)長(zhǎng)度,如如varchar2對(duì)象表的的特性對(duì)象表是是只用對(duì)對(duì)象類型型定義的的數(shù)據(jù)庫(kù)庫(kù)表,不不含關(guān)系系型列。對(duì)象表的的列對(duì)應(yīng)應(yīng)(用來(lái)來(lái)創(chuàng)建表表的)對(duì)對(duì)象類型型的屬性性。對(duì)象表的的行是表表類型的的對(duì)象(實(shí)例),每一一行都有有一個(gè)系系統(tǒng)分配配的唯一一的對(duì)象象標(biāo)識(shí)符符(OID)對(duì)象ID(OID)是每一個(gè)個(gè)行對(duì)象象的唯一一描述符符,是全全局唯一一的,并并且可以以引用OID不用于定定位數(shù)據(jù)據(jù),ROWID仍用

32、于定定位數(shù)據(jù)據(jù)oracle通過(guò)對(duì)象象引用實(shí)實(shí)現(xiàn)數(shù)據(jù)據(jù)庫(kù)中不不同對(duì)象象之間的的聯(lián)系(與關(guān)系系表完全全不同)獲取對(duì)象象引用ref 函數(shù)數(shù)具有OID的對(duì)象實(shí)實(shí)例可以以被引用用(REF)ref(對(duì)象表的的別名)返回對(duì)象象表實(shí)例例指針,即行對(duì)對(duì)象的引用。例:selectref(e)fromemployeese ;REF(e)-000028020965D.0BEFE0340800209ADC5901403BE50000000028020965D.0BEFE0340800209ADC5901403BE50001000028020965D.0BEFE0340800209ADC5901403BE50002對(duì)象引

33、用用例建立對(duì)象象表custCreatetypecust_typeasobject(custidnumber(5),namename_type,addressaddress_type); createtablecustofcust_type(custid primarykey );對(duì)象引用用例向cust表中插入入數(shù)據(jù)insertintocustvalues(1,name_type(王,至遠(yuǎn)),address_type(北京,白頤頤路5號(hào)號(hào),100084) );insertintocustvalues(2,name_type(張,大年),address_type(天津,康寧寧里20號(hào),300072

34、);insertintocustvalues(3,name_type(趙,力平),address_type(上海,南京京路23號(hào),200092);對(duì)象引用用例查詢cust表select*from custwherecustid=1;selectc.address.city,c.address.zipfrom .first_name=王;修改cust表結(jié)構(gòu)?altertablecustadd(address1address_type);不允許!對(duì)象引用用例建立goods_typeCREATETYPEgoods_type AS OBJECT(gnoNUMBER(3)

35、,gnamevarchar2(20),pricenumber(6,2);/CREATETABLEgoodsOFgoods_type( constraintp1primarykey(gno);INSERTINTOgoodsVALUES(101,電視機(jī),2900);INSERTINTOgoodsVALUES(102,洗衣機(jī),1500);對(duì)象引用用例CREATETYPEorder_type AS OBJECT(orderidNUMBER(3),customerREFcust_type,orderdateDATE,qtyNUMBER(5),gnoNUMBER(3);/CREATETABLEorders

36、 OF order_type( FOREIGNKEY (gno) REFERENCESgoods(gno) ;對(duì)象引用用例-customer-gnonumberorders-2張張大年-custgno-goodsOID=對(duì)象表對(duì)象引引用REF是指向行行對(duì)象的的指針,易于實(shí)實(shí)現(xiàn)表和和表之間間的聯(lián)系系,對(duì)象象之間連連接不再再需要關(guān)關(guān)系表的的連接(JOIN)操作。將對(duì)象表表的表別別名作為為REF的參數(shù),可以取取得對(duì)應(yīng)應(yīng)OID的引用值值。引用只能能用于具具有OID的對(duì)象。customerREFcust_typeSCOPEISCUSTSCOPE子句用于于限定一一個(gè)引用用在一個(gè)個(gè)指定表表中,這這樣可以以提

37、高查查詢性能能,并減減少存儲(chǔ)儲(chǔ)指針的的空間。INSERTINTOordersSELECT1, ref(c),7-1月-2000,165,101FROM custcWHEREcustid=1;UPDATEordersSETcustomer=( SELECTREF(c )FROMcust cWHEREcustid=2 )WHEREorderid =1;引用類型型數(shù)據(jù)的的操作引用類型型數(shù)據(jù)的的操作SELECTcustomerFROM ordersWHEREorderid =1;22020865F009D0AC26242A35E0340800SELECTo.customer.custid顧客號(hào),o.c

38、.last_name名,orderdate日期FROM ordersoWHEREorderid =1顧客號(hào)名名日日期-2大年07-1月-00對(duì)象引用用簡(jiǎn)化化了代碼碼數(shù)據(jù)庫(kù)管管理對(duì)象象間的連連系,用用戶只需需通過(guò)屬屬性進(jìn)行行對(duì)象的的引用。在關(guān)系設(shè)設(shè)計(jì)中, 開發(fā)發(fā)人員必必須使用用聯(lián)接(JOIN)SELECTname,address,.FROM orderso,cust cWHEREo.custid= c.custid andorderid=1;deref函數(shù)數(shù)deref(ref指針)返返回指針針指向的的對(duì)象本本身例:selectderef(customer)from ord

39、erswhere orderid=1;DEREF(CUSTOMER)(CUSTID,NAME(FIRST_NAME, LAST_NAME),ADDRESS(CITY, STREET,ZIP)-CUST_TYPE(2,NAME_TYPE(張張,大年年), ADDRESS_TYPE(天津,康寧里里20號(hào)號(hào),300072)試比較:selectderef(ref(c)from custcwherecustid=2;和selectvalue(c)fromcust cwherecustid=2;SQL語(yǔ)語(yǔ)句中的的排序和和比較傳統(tǒng)的數(shù)數(shù)據(jù)類型型主要為為標(biāo)量數(shù)數(shù)據(jù)類型型:number, char,date標(biāo)量

40、數(shù)據(jù)據(jù)類型可可以排序序(如orderby)排序在SQL語(yǔ)句的使使用:關(guān)系運(yùn)算算(標(biāo)標(biāo)量類類型方法返回回一個(gè)傳傳統(tǒng)數(shù)據(jù)據(jù)類型用用于排序序。沒(méi)有輸入入?yún)?shù)(只有一一個(gè)隱含含參數(shù)SELF)。方法被隱隱含調(diào)用用。在類型定定義中說(shuō)說(shuō)明MAP方法:CREATETYPEname_typeASOBJECT (first_namevarchar2(4),last_namevarchar2(4),MAPMEMBERFUNCTIONname_mapRETURNvarchar2);在類型體體中實(shí)現(xiàn)現(xiàn)MAP方法:CREATETYPEBODY name_typeASMAPMEMBER FUNCTION name_mapR

41、ETURN varchar2 ISBEGINRETURNfirst_name|last_name;END;END;排序:SELECTcustid ,c.address.cityFROM custcORDERBYname desc;任何基于于name_type類型的的排序按按名稱的的拼接串串作為大大小比較較的依據(jù)據(jù)。MAP方方法例例MAP方方法隱含含調(diào)用ORDER方法決定類型型實(shí)例的的序列關(guān)關(guān)系。有一個(gè)參參數(shù)(外外加一個(gè)個(gè)隱含的的參數(shù)SELF)函數(shù)方法法返回一一個(gè)整數(shù)數(shù)如果對(duì)象象自身比比參數(shù)對(duì)對(duì)象小, 返回回 -1如果對(duì)象象自身與與參數(shù)對(duì)對(duì)象相等等,返返回0如果對(duì)象象自身比比參數(shù)對(duì)對(duì)象大, 返回

42、回 1ORDER方法例1在類型定定義中聲聲明order方法:CREATEor replaceTYPEaddress_typeASOBJECT( cityVARCHAR2(10),streetVARCHAR2(10),zipNUMBER(6),ORDERMEMBERFUNCTIONaddress_order(other_addressaddress_type)RETURNINTEGER);在類型體體中實(shí)現(xiàn)現(xiàn)方法:CREATEORREPLACETYPE BODYaddress_typeASORDERMEMBERFUNCTIONaddress_order(other_addressaddress_t

43、ype)RETURNINTEGERISBEGINIFself.zip other_address.zip THENRETURN-1;ELSE RETURN0;ENDIF;END;END;ORDER方法例1郵編數(shù)小小的地址址大ORDER方法例1排序:.first_name姓,.last_name名,c.address.city城市,c.address.zip郵編from custcorderbyc.address desc;排序結(jié)果果:姓名名城城市郵郵編-王至至遠(yuǎn)遠(yuǎn)北北京100084趙力力平平上上海200092張大大民民天天津300072ORDER方法例2CR

44、EATEORREPLACETYPEemployee_typeASOBJECT(empnoNUMBER(3),enameVARCHAR2(10),salNUMBER(6.2),hiredateDATE ,MEMBERFUNCTIONdays_at_companyRETURNNUMBER,MEMBERPROCEDUREraise_salary(increment_salNUMBER) ,PRAGMARESTRICT_REFERENCES(days_at_company,WNDS ,WNPS) ,ORDERMEMBERFUNCTIONemp_order(other_empemployee_type)

45、RETURNINTEGER);ORDER方法例2CREATEOR REPLACETYPEBODY employee_typeASMEMBERFUNCTIONdays_at_companyRETURNNUMBERISBEGINRETURNfloor(sysdate-hiredate);END;MEMBERPROCEDUREraise_salary(increment_salNUMBER)ISBEGINUPDATEemployeesSETsal=sal+ increment_salWHEREempno= SELF.empno;END;ORDER方法例2ORDERMEMBERFUNCTIONemp_

46、order(other_empemployee_type)RETURNINTEGERISBEGINRETURNFLOOR(-(SELF.hiredate- other_emp.hiredate) );END;END;/ORDER方法例2select*from employeeseorderbyvalue(e);-按對(duì)象大大小排序序EMPNOENAMESALHIREDATE-3king90025-12月-002smith70010-5月-971Jone150005-10月-89對(duì)象類型型維護(hù)ALTERTYPEemployee_typeREPLACEASOBJECT(empnoNUMBER,ena

47、meVARCHAR2(10),salNUMBER,hiredateDATE,MEMBERFUNCTIONdays_at_companyRETURNNUMBER,MEMBERPROCEDUREraise_salary(increment_salNUMBER),PRAGMARESTRICT_REFERENCES(days_at_company,wnds,wnps), 對(duì)象類型型維護(hù)ORDERMEMBERFUNCTIONemp_order(other_empemployee_type)RETURNINTEGER,MEMBERFUNCTIONmonth_at_company-新方法RETURNNUMB

48、ER,PRAGMARESTRICT_REFERENCES(month_at_company,wnds) );/對(duì)象類型型維護(hù)CREATEOR REPLACETYPEBODY employee_typeASMEMBERFUNCTIONdays_at_companyRETURNNUMBERISBEGINRETURNfloor(sysdate- hiredate);END;MEMBERPROCEDURE raise_salary(increment_sal NUMBER)ISBEGINUPDATEemployeesSETsal= sal+ increment_salWHEREempno= SELF.

49、empno;END;對(duì)象類型型維護(hù)ORDERMEMBERFUNCTIONemp_order(other_empemployee_type)RETURNINTEGERISBEGINRETURNFLOOR(-(SELF.hiredateother_emp.hiredate) );END;MEMBERFUNCTIONmonth_at_companyRETURNNUMBERISBEGINRETURNmonths_between(sysdate,hiredate);END;END;/對(duì)象類型型信息與類型有有關(guān)的數(shù)數(shù)據(jù)字典典視圖user_typestype_nameattributesmethodsuse

50、r_type_attrstype_nameattr_namelengthattr_type_nameuser_type_methodstype_namemethod_name對(duì)象類型型信息查看對(duì)象象類型selecttype_name,attributes,methodsfrom user_types;TYPE_NAMEATTRIBUTESMETHODS-ADDRESS_TYPE31EMPLOYEE_TYPE31NAME_TYPE20columntype_name formata20wrapcolumnattributesformat999 wrapcolumnmethodsformat999

51、wrap對(duì)象類型型信息查看類屬屬性定義義selectattr_name,length,attr_type_namefrom user_type_attrswheretype_name=ADDRESS_TYPE;ATTR_NAMELENGTHATTR_TYPE_NAME-CITY20VARCHAR2STREET30VARCHAR2ZIPNUMBER對(duì)象類型型信息查看類方方法定義義selecttype_name ,method_namefrom user_type_methods;TYPE_NAMEMETHOD_NAME-ADDRESS_TYPEADDRESS_ORDEREMPLOYEE_TYPE

52、DAYS_AT_COMPANYEMPLOYEE_TYPEMONTH_AT_COMPANYEMPLOYEE_TYPEEMP_ORDERNAME_TYPENAME_MAP對(duì)象類型型相關(guān)性性在對(duì)象和和對(duì)象類類型之間間存在相相關(guān)樹。必須保保證樹的的完整。不允許許破壞被被引用的的類型。例如:drop typename_type;當(dāng)類型已被被引用時(shí)時(shí)不讓刪刪drop typename_type force ;強(qiáng)行刪除除,再查查使用該該類型定定義的表表時(shí)出錯(cuò)錯(cuò)。name_typeaddress_type對(duì)象類型型相關(guān)性性workercust_typeCustemployee_typeemployeesord

53、ersgoodsgoods_typeorder_type查看對(duì)象象相關(guān)性性例:selectname,type,referenced_nameRname,referenced_typeRtypefrom user_dependencieswherename=ORDERS ;NAMETYPERNAMERTYPE-ORDERSTABLESTANDARDPACKAGEORDERSTABLECUST_TYPETYPEORDERSTABLEORDER_TYPETYPE查看對(duì)象象相關(guān)性性例:=CUSTnametypeRnameRtype-CUSTTABLESTANDARDPACKAGE

54、CUSTTABLENAME_TYPETYPECUSTTABLEADDRESS_TYPETYPECUSTTABLECUST_TYPETYPE例:selectreferenced_name=cust_type;查看哪些些對(duì)象使使用了cust_type類型。查看對(duì)象象相關(guān)性性例:=CUST_TYPE;nametypeRnameRtype-CUST_TYPETYPESTANDARDPACKAGECUST_TYPETYPENAME_TYPETYPECUST_TYPETYPEADDRESS_TYPETYPE列出依賴賴樹:執(zhí)行oracle根目錄/rdbms/admin/utldtree

55、.sql生成兩個(gè)個(gè)視圖deptree和ideptree程序視圖圖顯示依依賴樹。小結(jié)對(duì)對(duì)象屬性性和方法法當(dāng)使用表表的當(dāng)前前行對(duì)象象時(shí),對(duì)對(duì)象屬性性和方法法的引用用必須使使用表的的別名,而不能能是實(shí)際際的表名名selectc.address.city,c.address.zipfrom .first_name=王;selecte.days_at_company()from employeesewheree.empno=3;小結(jié)列列對(duì)象與與行對(duì)象象列對(duì)象:嵌入型型對(duì)象,作為表表中的列列來(lái)處理理的對(duì)象象,要通通過(guò)主表表才能訪訪問(wèn)。自定義復(fù)復(fù)合數(shù)據(jù)據(jù)類型可變數(shù)組組嵌套表行

56、對(duì)象:不是嵌嵌入型對(duì)對(duì)象,而而是引用用型對(duì)象象,可以以通過(guò)其其他對(duì)象象的引用用(ref)來(lái)訪問(wèn)。列對(duì)象沒(méi)沒(méi)有OID,而且不能能被引用用。列對(duì)象是是基于對(duì)對(duì)數(shù)據(jù)庫(kù)庫(kù)已有功功能的擴(kuò)擴(kuò)充(自自定義類類型)。收集類型型Oracle的數(shù)據(jù)類類型擴(kuò)展展收集類型型實(shí)現(xiàn)一對(duì)對(duì)多關(guān)系系的模型型化。在關(guān)系設(shè)設(shè)計(jì)中,只能通通過(guò)聯(lián)接接(JOIN)實(shí)現(xiàn)表的的關(guān)聯(lián), 將導(dǎo)導(dǎo)致復(fù)雜雜的運(yùn)算算。在對(duì)象設(shè)設(shè)計(jì)中,可以通通過(guò)收集集實(shí)現(xiàn)對(duì)對(duì)象類型型的關(guān)聯(lián)聯(lián)收集類型型記錄數(shù)組表收集類型型-可可變數(shù)組組支持有序序的一對(duì)對(duì)多的關(guān)關(guān)系。可以在一一行中存存儲(chǔ)某個(gè)個(gè)記錄的的重復(fù)屬屬性??勺?,但但要指定定數(shù)組最最大容量量。數(shù)組元素素具有相相同類

57、型型,可以以是基基本類型型、REF或?qū)ο箢愵愋?。但但不能是是嵌套表表或可變變?shù)組類類型。不能是VARRAYOFLOB類型book數(shù)據(jù)結(jié)構(gòu)構(gòu)分析化學(xué)學(xué) 相關(guān)圖Book_list_type(varray(5)ofvarchar2(10)borrower_type (sno,sname,class,books)borrower使用數(shù)組組類型定義數(shù)組組類型CREATETYPEbook_list_typeASVARRAY(5)OFVARCHAR2(10);建借閱者者表的類類型CREATETYPEborrower_type AS OBJECT(snoNUMBER(6),snameVARCHAR2(10),

58、classVARCHAR2(10),booksbook_list_type,MEMBERFUNCTIONadd_book(bookVARCHAR2)RETURNbook_list_type,PRAGMArestrict_references(add_book, WNDS);在方法中中處理數(shù)數(shù)組類型型數(shù)據(jù)實(shí)現(xiàn)類方方法CREATETYPEBODY borrower_typeASMEMBERFUNCTIONadd_book(bookvarchar2)RETURNbook_list_typeIStemp_arraybook_list_type;counterINTEGER;BEGINtemp_arra

59、y := SELF.books;counter := temp_array.COUNT+1;temp_array.EXTEND;temp_array(counter) := book;RETURNtemp_array;END;END;建含有數(shù)數(shù)組的對(duì)對(duì)象表CREATETABLEborrowerOFborrower_type;收集類型型-收收集的方方法收集(collection)的方法: 內(nèi)置置的函數(shù)數(shù)和過(guò)程程函數(shù)方法法:EXISTS(n)當(dāng)收集類類型中指指定元素素存在為為“真”COUNT返回當(dāng)前前收集類類型中的的元素個(gè)個(gè)數(shù)。LIMIT返回可變變數(shù)組元元素個(gè)數(shù)數(shù)的上限限值FIRSTandLAST

60、返回收集集中第一一個(gè)和最最后一個(gè)個(gè)元素的的下標(biāo)。 (對(duì)對(duì)于可變變數(shù)組,總是返返回1和和count)PRIOR(n)andNEXT(n)返回指定定元素的的前一個(gè)個(gè)和后一一個(gè)元素素的下標(biāo)標(biāo)。收集類型型-收收集的方方法過(guò)程方法法:EXTEND擴(kuò)充收集集的大小小extend擴(kuò)充一個(gè)個(gè)空元素素extend(n)擴(kuò)充n個(gè)空元素素extend(n,I)將收集中中第I個(gè)元素拷拷貝n份,追加加到收集集中。TRIM從收集尾尾部刪除除元素trim刪除收集集中最后后一個(gè)元元素trim(n)刪除收集集中最后后n個(gè)元素DELETE刪除元素素delete刪除收集集中所有有元素delete(n)刪除收集集中第n個(gè)元素dele

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論