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

正文內(nèi)容

db2數(shù)據(jù)庫對象基礎(chǔ)知識-在線瀏覽

2024-08-08 08:14本頁面
  

【正文】 me 用于獲取下一個序列值,而 PREVVAL FOR seqname 則用于獲取上一個生成的序列值。INSERT INTO t1 VALUES (NEXTVAL FOR myseq, 39。)。PAT39。COMMIT。GENE39。ROLLBACK。PAUL39。VALUES PREVVAL FOR myseq INTO :hostvar假設(shè)我們以一個空表 t1 開始,myseq 的下一個序列值是 1。因而,下一個為 PAUL 生成的序列值就是 4,而不是 3。宿主變量 :hostvar 存儲當(dāng)前會話中生成的最后一個值。臨時表 顧名思義,臨時表(temporary table)不是永久性的數(shù)據(jù)庫對象。臨時表只能維持在一次連接期間。 只有聲明臨時表的會話或應(yīng)用程序才能訪問臨時表。因而,完全不必?fù)?dān)心出現(xiàn)臨時數(shù)據(jù)沖突的情況。這正是臨時表的一個主要的性能優(yōu)勢。SYSTEM 臨時表空間只是 DB2 在內(nèi)部用來執(zhí)行諸如排序之類操作的。CREATE USER TEMPORARY TABLESPACE usertempspace MANAGED BY SYSTEM USING (39。)聲明全局臨時表時,可以使用很多可選子句。DECLARE GLOBAL TEMPORARY TABLE t_dept ( deptid CHAR(6), deptname CHAR(20) )ON COMMIT DELETE ROWS NOT LOGGEDIN usertempspace在這個例子中,聲明了臨時表 t_dept,這個表有兩列。在 DB2 V8 中,可以選擇記錄對臨時表的更改,以便回滾。這意味著對該表的任何操作,包括創(chuàng)建以及更改,都不做日志記錄。另一方面,如果在此工作單位內(nèi)刪除該表,則該表在恢復(fù)時將沒有任何行。如果沒有指定該信息,DB2 就會搜索最適用的表空間。讓我們看看另一個例子:DECLARE GLOBAL TEMPORARY TABLE t_proj LIKE project ON COMMIT PRESERVE ROWS WITH REPLACE IN usertempspace臨時表 t_proj 是用 LIKE 關(guān)鍵字聲明的,因此它擁有與名為 project 的持久表或視圖相同的列定義。因此,這些行就可以在下一次事務(wù)中用于進(jìn)一步的處理??梢燥@式地刪除該表,也可以像這里一樣使用 WITH REPLACE 選項。如果使用了 連接池(connection pooling),WITH REPLACE 選項用起來就十分方便了。這些操作的開銷都是相當(dāng)大的,尤其是在有大量執(zhí)行很短事務(wù)的連接時,更是如此。下一個使用該連接的應(yīng)用程序就可能使用上一次執(zhí)行時遺留下來的數(shù)據(jù)。模式與數(shù)據(jù)庫對象 大多數(shù)數(shù)據(jù)庫對象都是用一個 模式(schema) 和一個 對象名(object name)標(biāo)識的。下面例釋了這種分為兩部分的對象名: 如果在訪問數(shù)據(jù)庫對象時沒有指定模式,則用于建立數(shù)據(jù)庫連接的用戶 ID 將被設(shè)為缺省的模式。此后所有引用非全限定(unqualified)表名 T1 的 SQL 語句都解析為 。而硬編碼(hardcoding)應(yīng)用程序以完全限定對象也不是最好的解決辦法。缺省情況下,CURRENT SCHEMA DB2 專用寄存器被設(shè)置為連接到數(shù)據(jù)庫的 USER。當(dāng)前模式可以通過下面這個命令獲得:VALUES CURRENT SCHEMA要對它進(jìn)行更改,只需使用下面的命令:SET SCHEMA=db2adminDB2應(yīng)用程序開發(fā)數(shù)據(jù)庫對象例程 在本節(jié)中,我們將介紹更多類型的數(shù)據(jù)庫對象。從功能上分,主要有三種例程:存儲過程(stored procedure)、函數(shù)(function)和方法(method)。)例程是封裝了與某一特定任務(wù)相關(guān)的編程和數(shù)據(jù)庫邏輯的數(shù)據(jù)庫對象。例如,如果將某種業(yè)務(wù)邏輯封裝在一個例程中,那么對此業(yè)務(wù)規(guī)則的更改只會影響那個特定的例程。例程是在數(shù)據(jù)庫服務(wù)器上定義和處理的。通常,復(fù)雜的業(yè)務(wù)邏輯需要多條 SQL 語句。如果將這些操作放在一個例程中,那么客戶機(jī)和服務(wù)器之間的網(wǎng)絡(luò)傳輸就會大大減少,從而可以提高應(yīng)用程序的總體性能。例程可用于屏蔽對底層數(shù)據(jù)庫對象的直接訪問。例程的不同實現(xiàn) 例程有幾種可能的實現(xiàn):內(nèi)置(builtin)例程是 DB2 系統(tǒng)附帶的。 Sourced 例程只適用于函數(shù)。 外部(external)例程是用一種外部的編程語言實現(xiàn)的。DB2 SQL PL 是 SQL Persistent Stored Modules (SQL/PSM) 語言標(biāo)準(zhǔn)的一個子集。它將 SQL 數(shù)據(jù)訪問的容易性與簡單編程語言的流控制結(jié)構(gòu)相結(jié)合。存儲過程、函數(shù)和方法 存儲過程 是一種數(shù)據(jù)庫對象,它包含用于訪問和修改一個或多個表中數(shù)據(jù)的專門程序。存儲過程可以作為對客戶機(jī)應(yīng)用程序或其他例程的子例程擴(kuò)展。函數(shù) 是可以自定義的 SQL 擴(kuò)展。有四種類型的函數(shù):聚合(aggregate)函數(shù)、標(biāo)量(scalar)函數(shù)、行(row)函數(shù)以及 表(table)函數(shù)。而函數(shù) ―― 尤其是 SQL 函數(shù) ―― 通常包含更簡單的操作。這導(dǎo)致這些語句在執(zhí)行時動態(tài)編譯。這樣將影響整個運(yùn)行時性能。DB2 專用寄存器:CURRENT PATH 與大多數(shù) DB2 數(shù)據(jù)庫對象一樣,一個完整的例程名由一個模式和一個例程名組成。相反,DB2 是使用 CURRENT PATH 專用寄存器來定位例程的。例如:SYSIBM,SYSFUN,SYSPROC,DB2ADMIN下面是一些例子和技巧,您可以用它們來更新 PATH:SET PATH=CURRENT PATH,USER2VALUES CURRENT PATHSYSIBM,SYSFUN,SYSPROC,DB2ADMIN,USER21 record(s) selected.嵌入式 SQL 程序嵌入式 SQL 簡介 DB2 為開發(fā)人員提供了不同的編程方法來編寫應(yīng)用程序。這種編程方法是 直接的,因為程序嵌入了直接與 DB2 交互的 SQL 語句。C/C++ 和 FORTRAN 中的嵌入式 SQL 語句前面要加上 EXEC SQL 關(guān)鍵字:EXEC SQL SELECT lastname,empid INTO :hostvar1, :hostvar2 FROM employee WHERE deptno=OPERATIONS。Java 語言中的嵌入式 SQL 語句與前面兩個例子中展示的那些嵌入式
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1