2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、DB2開發(fā)基礎(chǔ)介紹,議程,訪問工具客戶端和DB2數(shù)據(jù)庫的連接方式DB2中的數(shù)據(jù)類型DB2中獨(dú)有的一些SQL語句語法如何寫存儲過程?在DB2 9版本中如何用開發(fā)工作臺寫存儲過程?如何寫觸發(fā)器?,訪問工具,db2命令行處理器(db2clp)控制中心命令編輯器復(fù)制中心配置助手信息中心第三方的訪問工具,db2命令行處理器(db2clp),有2種運(yùn)行方式:(1)類似于操作系統(tǒng)命令,如下圖:,(2)在db2提示符下執(zhí)行SQ

2、L命令,db2命令行處理器(db2clp) - 在db2提示符下執(zhí)行SQL命令,(1)首先在操作系統(tǒng)提示符下執(zhí)行db2命令,會出現(xiàn)db2提示符db2 =>(2)輸入你想執(zhí)行的任何SQL語句,控制中心,初學(xué)者常用的工具,可以通過show sql按鈕告訴你db2語句的語法功能強(qiáng)大的管理工具修改數(shù)據(jù)庫參數(shù)創(chuàng)建數(shù)據(jù)庫及存放其中的對象管理分區(qū)的策略創(chuàng)建聯(lián)邦的數(shù)據(jù)庫對象備份恢復(fù),控制中心界面,命令編輯器,執(zhí)行sql命令,察看執(zhí)行

3、計劃,復(fù)制中心,配置SQL復(fù)制,異構(gòu)數(shù)據(jù)源之間的復(fù)制Q復(fù)制,通過Websphere MQ隊列進(jìn)行復(fù)制復(fù)制進(jìn)程的啟動和停止復(fù)制情況的監(jiān)控,配置和管理復(fù)制的圖形化界面,復(fù)制中心界面,配置助手 – 用于配置和數(shù)據(jù)庫的連接及ODBC數(shù)據(jù)源,信息中心 – db2的聯(lián)機(jī)文檔,訪問db2的第三方的工具,Quest for db2Toad for db2PowerBuilder及其他免費(fèi)的一些工具spotslight,議程,訪問工具客戶端

4、和DB2數(shù)據(jù)庫的連接方式DB2中的數(shù)據(jù)類型DB2中獨(dú)有的一些SQL語句語法如何寫存儲過程?在DB2 9版本中如何用開發(fā)工作臺寫存儲過程?如何寫觸發(fā)器?,,客戶端和DB2數(shù)據(jù)庫的連接方式,Native的連接方式 (1)TCP/IP連接;(2)共享內(nèi)存連接JDBCODBC,連接方式常用的有3種:,Native的連接方式 - TCP/IP連接,通過TCP/IP協(xié)議進(jìn)行通訊,需要為數(shù)據(jù)庫實(shí)例指定監(jiān)聽端口,并且需要通過db2

5、set設(shè)置通訊的協(xié)議中包括TCP/IP協(xié)議。 指定監(jiān)聽端口的方式如下: db2 update dbm cfg using svcename 50000 設(shè)置通訊協(xié)議的方式如下: db2set DB2COMM=tcpip 在完成上述設(shè)置并重啟數(shù)據(jù)庫實(shí)例之后,數(shù)據(jù)庫進(jìn)程中將包含一個監(jiān)聽客戶端請求的進(jìn)程; tcp/ip連接需要安裝db2客戶端,如何配置TCP/IP的連接方式,1

6、.命令方式: 需要的步驟有2個:(1)編目數(shù)據(jù)庫服務(wù)器;通俗的講目的是告訴客戶端數(shù)據(jù)庫服務(wù)器運(yùn)行在哪臺機(jī)器上?監(jiān)聽端口是多少? db2 catalog tcpip node #node# remote #hostname# server #port#(2)編目數(shù)據(jù)庫 DB2是多庫的結(jié)構(gòu),因此需要告訴客戶端需要訪問的目的數(shù)據(jù)庫 db2 catalog db #database# as #a

7、lias# at node #node name#,2.通過db2客戶端的配置助手進(jìn)行配置,Native的連接方式 – 共享內(nèi)存連接,共享內(nèi)存連接適用于應(yīng)用程序和數(shù)據(jù)庫在同一臺機(jī)器上的情景。,JDBC連接方式,Websphere等應(yīng)用服務(wù)器使用這種連接方式,在Websphere的管理界面中進(jìn)行配置。 不需要安裝db2客戶端。,ODBC連接方式,通常在使用第三方的開發(fā)工具時使用這種連接方式,在Windows平臺上其配

8、置方式是通過DB2客戶端的配置助手來進(jìn)行。,訪問工具客戶端和DB2數(shù)據(jù)庫的連接方式DB2中的數(shù)據(jù)類型DB2中獨(dú)有的一些SQL語句語法如何寫存儲過程?在DB2 9版本中如何用開發(fā)工作臺寫存儲過程?如何寫觸發(fā)器?,議程,訪問工具客戶端和DB2數(shù)據(jù)庫的連接方式DB2中的數(shù)據(jù)類型DB2中獨(dú)有的一些SQL語句語法如何寫存儲過程?在DB2 9版本中如何用開發(fā)工作臺寫存儲過程?如何寫觸發(fā)器?,議程,DB2中獨(dú)有的一些SQL語句

9、語法,創(chuàng)建表時指明索引所在的表空間Case語句序列的使用全局臨時表的使用,創(chuàng)建表時指明索引所在的表空間,create table db2admin.salesdetail (product_id integer not null, region_id integer not null, time_id integer not null, amount

10、 integer not null, turnover decimal(10, 0) ) in userspace1 index in idxspace1;,Case語句,EXEC SQL select sum(case when B.srvknd_id=:gsm_srvknd_id then charge else 0 end), sum(case when B.

11、srvknd_id=:cdma_srvknd_id then charge else 0 end) into :gsm_charge_stop_before_month2, :cdma_charge_stop_before_month2 from session.tmp_charge

12、_user A ,session.tmp_userid B where A.userid=B.userid;,序列的使用,創(chuàng)建序列:CREATE SEQUENCE ORG_SEQ #序列的名稱START WITH 1 #從1開始INCREMENT BY 1

13、 #每次增加1個NO MAXVALUE #沒有最大值NO CYCLE #不循環(huán)使用CACHE 24 #在內(nèi)存中緩存24個值,目的是加快讀取訪問序列的屬性可以通過alter sequen

14、ce在后期修改。,操作序列:,獲得序列的當(dāng)前值:insert into customer_orders_t values ( next value for orders_seq, current date, :cid, :pid, :qty, :cost, 'pending')獲得序列的下一個值:insert into customer_orders_t values (previo

15、us value for orders_seq, current date, :cid, :pid, :qty, :cost, 'pending'),全局臨時表的使用,定義EXEC SQL declare global temporary table tmp_userid (userid decimal(10,0) not null ,

16、 srvknd_id smallint) with replace on commit preserve rows not logged in ts_usertemp; 其中ts_usertemp為用戶臨時表空間,需要系統(tǒng)管理員創(chuàng)建。操作 EXEC SQL insert into session.tmp_userid

17、 select userid,:cdma_srvknd_id from fo_cuserinfo where stopday_id > :month1 * 100 and stopday_id < :month1 * 100 + 32;當(dāng)應(yīng)

18、用程序運(yùn)行結(jié)束之后,臨時表自動刪除。,訪問工具客戶端和DB2數(shù)據(jù)庫的連接方式DB2中的數(shù)據(jù)類型DB2中獨(dú)有的一些SQL語句語法如何寫存儲過程?在DB2 9版本中如何用開發(fā)工作臺寫存儲過程?如何寫觸發(fā)器?,議程,存儲過程的創(chuàng)建方式有兩種:,在文本編輯器中編寫,通過命令行創(chuàng)建通過db2客戶端的開發(fā)者工作臺創(chuàng)建,在命令行中創(chuàng)建存貯過程舉例,(1)將下列存儲過程的定義存放在一個文本文件中,如:sp.sql. drop proce

19、dure sq.p_sq_othercomputemeasure@create procedure sq.p_sq_othercomputemeasure(in in_t_curmonth numeric(6))language sqlbeginif in_t_curmonth is null then values ( year(current date )*100 + month(current date)) int

20、o in_t_curmonth;end if;delete from sq.st1043 where statdate=in_t_curmonth and zbkndcode='21' ;insert into sq.st1043 (statcyc,statdate,zbvalue,zbkndcode) call sq_setstatstatus(1043,in_t_curmonth,'y');

21、commit;end @ -- @為語句結(jié)束符(2)在db2命令行中通過下面的方式創(chuàng)建存儲過程 db2 –td@ -vf sp.sql td選項用來定義sql語句的結(jié)束符號; v選項用來確定是否在屏幕上顯示執(zhí)行的sql語句; f選項用來指定sql命令所存放的文件,通過db2客戶端的開發(fā)者工作臺創(chuàng)建,使開發(fā)者專注于存儲過程的過程體,不需要關(guān)注如何

22、創(chuàng)建以及存儲過程的其他一些特性可以進(jìn)行調(diào)試,察看執(zhí)行過程的錯誤代碼和變量值采用Eclipse技術(shù),開發(fā)者工作臺的主界面,訪問工具客戶端和DB2數(shù)據(jù)庫的連接方式DB2中的數(shù)據(jù)類型DB2中獨(dú)有的一些SQL語句語法如何寫存儲過程?在DB2 9版本中如何用開發(fā)工作臺寫存儲過程?如何寫觸發(fā)器?,議程,在DB2 9版本中如何用開發(fā)工作臺寫存儲過程,新建項目選擇數(shù)據(jù)庫連接新建存儲過程選擇存儲過程是否返回結(jié)果集定義SQL錯誤的意

23、外處理程序編寫存儲過程體發(fā)布存儲過程到數(shù)據(jù)庫服務(wù)器,步驟:,新建項目,選擇數(shù)據(jù)庫連接,新建存儲過程,選擇存儲過程是否返回結(jié)果集,定義SQL錯誤的意外處理程序,編寫存儲過程體,發(fā)布存儲過程到數(shù)據(jù)庫服務(wù)器,訪問工具客戶端和DB2數(shù)據(jù)庫的連接方式DB2中的數(shù)據(jù)類型DB2中獨(dú)有的一些SQL語句語法如何寫存儲過程?在DB2 9版本中如何用開發(fā)工作臺寫存儲過程?如何寫觸發(fā)器?,議程,創(chuàng)建觸發(fā)器,create trigger veri

24、fy_credit before insert on orders_t referencing new as n for each row mode db2sql begin atomic declare current_due decimal(10,2) default 0;declare credit_line decimal(10,2); set credit_line = (select credit from c

25、ustomer_t c where c.cust_id=n.cust_id); for ord_cursor as select quantity, price from orders_t ord where ord.cust_id=n.cust_id and status not in ('completed','cancelled') do set current_due

26、 = current_due + (ord_cursor.price * ord_cursor.quantity); end for; if (current_due + n.price * n.quantity) > credit_line then signal sqlstate '80000' ('order exceeds credit line'); end if;

27、 end @,創(chuàng)建觸發(fā)器的方式和通過命令行方式創(chuàng)建存儲過程的方法相同,Insert事件的觸發(fā)器,Update事件的觸發(fā)器,create trigger verify_state before update on orders_treferencing old as o new as n for each row mode db2sql begin atomic if o.status='pending' an

28、d n.status in ('shipped','cancelled') then -- valid state elseif o.status='shipped' and n.status ='delivered' then -- valid state elseif o.status='delivered' and n.statu

29、s = 'completed' then -- valid state else signal sqlstate '80001' ('invalid state transition'); end if; end @,Delete事件的觸發(fā)器,create trigger log_deleteafter delete on orders_treferencing old a

溫馨提示

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

評論

0/150

提交評論