freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle8對(duì)象關(guān)系數(shù)據(jù)庫(kù)(編輯修改稿)

2024-11-29 17:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 Jone 0510月 89 select ename , () days from employees e where empno=3。 EMPNAME DAYS king 45 使用別名 ? 在 PL/SQL程序中,取得的對(duì)象實(shí)例必須被相同類型的對(duì)象變量接收。 ? 例: declare emp employee_type。 begin select value(e) into emp from employees e where empno=1。 (500)。 end。 / PL/SQL中 對(duì)象方法的調(diào)用 PL/SQL中 對(duì)象方法的調(diào)用 DECLARE emp_variable employee_type。 days_employed number。 BEGIN SELECT VALUE( e ) INTO emp_variable FROM employees e WHERE = 3 。 days_employed := () 。 (‘Days employed: ‘ || to_char(days_employed)) 。 END。 / 附 : PL/SQL輸出與環(huán)境設(shè)置 ? 執(zhí)行結(jié)果: Days employed: 26 ? PL/SQL輸出(利用包過(guò)程) ? (‘…’) 。 ? 環(huán)境設(shè)置 ? exec ? set serveroutput on 對(duì)象方法小結(jié) ? 對(duì)象類型總是有 1到多個(gè)方法(構(gòu)造方法是隱含方法,成員方法為 0~n個(gè)。 ? 成員方法可以帶輸入輸出參數(shù)。 ? 每個(gè)成員方法含有名為 SELF的隱含第一參數(shù),它具有與對(duì)象類型自身相同的類型。 ? 定義函數(shù)方法,如沒(méi)參數(shù)不用寫括號(hào),但調(diào)用時(shí)要寫括號(hào)。定義方法形參時(shí),類型不用寫長(zhǎng)度,如 varchar2 對(duì)象表的特性 ? 對(duì)象表是只用對(duì)象類型定義的數(shù)據(jù)庫(kù)表,不含關(guān)系型列。 ? 對(duì)象表的列對(duì)應(yīng)(用來(lái)創(chuàng)建表的)對(duì)象類型的屬性。 ? 對(duì)象表的行是表類型的對(duì)象 (實(shí)例 ),每一行都有一個(gè)系統(tǒng)分配的唯一的對(duì)象標(biāo)識(shí)符( OID) ? 對(duì)象 ID(OID)是每一個(gè)行對(duì)象的唯一描述符 ,是全局唯一的 ,并且可以引用 ? OID不用于定位數(shù)據(jù) , ROWID仍用于定位數(shù)據(jù) ? oracle 通過(guò)對(duì)象引用實(shí)現(xiàn)數(shù)據(jù)庫(kù)中不同對(duì)象之間的聯(lián)系(與關(guān)系表完全不同) 獲取 對(duì)象引用 — ref 函數(shù) ? 具有 OID的對(duì)象實(shí)例可以被引用 (REF) ? ref(對(duì)象表的別名) 返回對(duì)象表實(shí)例指針,即行對(duì)象的 引用。 ? 例: select ref(e) from employees e 。 REF(e) 000028020965D...0BEFE0340800209ADC5901403BE50000 000028020965D...0BEFE0340800209ADC5901403BE50001 000028020965D...0BEFE0340800209ADC5901403BE50002 對(duì)象引用例 ? 建立對(duì)象表 cust Create type cust_type as object ( custid number(5), name name_type, address address_type )。 create table cust of cust_type (custid primary key )。 對(duì)象引用例 ? 向 cust表中插入數(shù)據(jù) insert into cust values(1,name_type(39。王 39。,39。至遠(yuǎn) 39。), address_type(‘北京’ ,‘白頤路 5號(hào)’ ,100084) )。 insert into cust values(2,name_type(‘張’ ,‘大年 39。), address_type(39。天津 39。,39??祵幚?20號(hào) 39。,300072))。 insert into cust values(3,name_type(39。趙 39。,39。力平 39。), address_type(39。上海 39。,39。南京路 23號(hào) 39。,202092))。 對(duì)象引用例 ? 查詢 cust表 select * from cust where custid=1。 select , from cust c where =‘王’ 。 ? 修改 cust 表結(jié)構(gòu) ??? alter table cust add(address1 address_type)。 不允許?。?! 對(duì)象引用例 ? 建立 goods_type CREATE TYPE goods_type AS OBJECT( gno NUMBER(3), gname varchar2(20), price number(6,2) )。 / CREATE TABLE goods OF goods_type ( constraint p1 primary key(gno)) 。 INSERT INTO goods VALUES(101,39。電視機(jī) 39。,2900)。 INSERT INTO goods VALUES(102,39。洗衣機(jī) 39。,1500)。 對(duì)象引用例 CREATE TYPE order_type AS OBJECT( orderid NUMBER(3), customer REF cust_type, orderdate DATE, qty NUMBER(5), gno NUMBER(3) )。 / CREATE TABLE orders OF order_type ( FOREIGN KEY (gno) REFERENCES goods(gno) ) 。 對(duì)象引用例 customer gno number orders 2 張大年 cust gno goods = 對(duì)象表 — 對(duì)象引用 ? REF是指向行對(duì)象的指針,易于實(shí)現(xiàn)表和表之間的聯(lián)系,對(duì)象之間連接不再需要關(guān)系表的連接( JOIN) 操作。 ? 將對(duì)象表的表別名作為 REF的參數(shù) ,可以取得對(duì)應(yīng) OID的引用值。 ? 引用只能用于具有 OID的對(duì)象。 ? customer REF cust_type SCOPE IS CUST SCOPE子句用于限定一個(gè)引用在一個(gè)指定表中,這樣可以提高查詢性能,并減少存儲(chǔ)指針的空間。 INSERT INTO orders SELECT 1, ref(c), ‘71月 2020’ ,165, 101 FROM cust c WHERE custid=1。 UPDATE orders SET customer = ( SELECT REF( c ) FROM cust c WHERE custid = 2 ) WHERE orderid = 1 。 引用類型數(shù)據(jù)的操作 引用類型數(shù)據(jù)的操作 SELECT customer FROM orders WHERE orderid = 1。 22020865F009D0AC262… 42A35E0340800… SELECT 顧客號(hào) , 名 ,orderdate 日期 FROM orders o WHERE orderid = 1 顧客號(hào) 名 日期 2 大年 071月 00 對(duì)象引用 — 簡(jiǎn)化了代碼 ? 數(shù)據(jù)庫(kù)管理對(duì)象間的連系 ,用戶只需通過(guò)屬性進(jìn)行對(duì)象的引用。 ? 在關(guān)系設(shè)計(jì)中 , 開(kāi)發(fā)人員必須使用聯(lián)接 (JOIN) SELECT name,address,... FROM orders o, cust c WHERE = and orderid =1。 deref函數(shù) ? deref (ref指針)返回指針指向的對(duì)象本身 ? 例: select deref(customer) from orders where orderid=1。 DEREF(CUSTOMER)(CUSTID, NAME(FIRST_NAME, LAST_NAME), ADDRESS(CITY, STREET, ZIP)) CUST_TYPE(2, NAME_TYPE(‘張’ , ‘大年’ ), ADDRESS_TYPE(‘天津’ , ‘康寧里 20號(hào)’ , 300072)) ? 試比較: select deref(ref(c)) from cust c where custid=2。 和 select value(c) from cust c where custid=2。 SQL語(yǔ)句中的排序和比較 ? 傳統(tǒng)的數(shù)據(jù)類型主要為標(biāo)量數(shù)據(jù)類型: ? number, char,date ? 標(biāo)量數(shù)據(jù)類型可以排序(如 order by …) ? 排序在 SQL語(yǔ)句的使用: ? 關(guān)系運(yùn)算( = ) ? between 及 in 的判斷 ? order by group by distinct 子句 ? unique 和 primary key 約束 ? 自定義數(shù)據(jù)類型如何排序 select wname, address from worker order by address 。 錯(cuò)誤位于第 2行: ORA22950: 無(wú)法 ORDER 沒(méi)有 MAP 或 ORDER 方法的對(duì)象 對(duì)象類型的排序方法 ? 同類的排序?qū)χС钟脩舳x的對(duì)象類型很重要。 ? 對(duì)象類型由于結(jié)構(gòu)復(fù)雜 , 必須借助方法實(shí)現(xiàn)排序和比較。 ? MAP方法將對(duì)象類型轉(zhuǎn)換為傳統(tǒng)數(shù)據(jù)類型。 ? ORDER方法提供排序規(guī)則。比較本對(duì)象和另一對(duì)象實(shí)例 , 并返回 1, 0, 1 分別代表 大于、等于、小于 。 ? 一個(gè)對(duì)象類型只能有一個(gè) MAP方法或一個(gè) ORDER方法: ? map member function … ? order member function… MAP 方法例 ? 對(duì)象類型 標(biāo)量類型 ? 方法返回一個(gè)傳統(tǒng)數(shù)據(jù)類型用于排序。 ? 沒(méi)有輸入?yún)?shù) (只有一個(gè)隱含參數(shù) SELF)。 ? 方法被隱含調(diào)用。 ? 在類型定義中說(shuō)明 MAP方法: CREATE TYPE name_type AS OBJECT ( first_name varchar2(4), last_name varchar2(4), MAP MEMBER FUNCTION name_map RETURN varchar2 )。 ? 在類型體中實(shí)現(xiàn) MAP方法: CREATE TYPE BODY name_type AS MAP MEMBER FUNCTION name_map RETURN varchar2 IS BEGIN RETURN first_name || last_name 。 END。 END。 ? 排序: SELECT custid , FROM cust c ORDER BY name desc 。 任何基于 name_type類型的排序按名稱的拼接串作為大小比較的依據(jù)。 MAP 方法例 MAP方法隱含調(diào)用 ORDER 方法 ? 決定類型實(shí)例的序列關(guān)系。 ? 有一個(gè)參數(shù) (外加一個(gè)隱含的參數(shù) SELF) ? 函數(shù)方法返回一個(gè)整數(shù) ? 如果
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1