版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1 Ⅰ、定義基本表 1Ⅰ、修改基本表 1 I 3 I IPLSQL構(gòu) 4 IV 5 15料 15義以加深對(duì)數(shù)據(jù)庫基本知識(shí)及SQL語言的理解,提高綜合應(yīng)用系統(tǒng)的能力。儲(chǔ)過程。SQL數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,其功能并不僅僅是查詢。SQL通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言。它之所以能夠?yàn)橛脩艉蜆I(yè)界所接受,并據(jù)查詢(DataQuery)、數(shù)據(jù)操縱(DataManipulation)、數(shù)據(jù)定義(DataDefinition)和數(shù)據(jù)控制(DataControl)功能于一體。Ⅰ、定義基本表語句格式:EATETABLE (<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>][,<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束條件>]]…在列級(jí)也可以定義在表級(jí)。Ⅰ、修改基本表語句格式:[ADD<新列名><數(shù)據(jù)類型>[完整性約束]]DROP>]ALTERCOLUMN];語句格式:DROPTABLE<表名>[RESTRICT|CASCADE];賴該表的對(duì)象,則此表不能被刪除。CADE語句格式:ELECTALLDISTINCTWHERE]GROUPBYHAVING式>]]ERBYASCDESC語句格式:T功能:將新元組插入指定表中。語句格式:UPDATE<表名>E功能:修改指定表中滿足WHERE子句條件的元組。語句格式:ETEFROM<表名>E功能:刪除指定表中滿足WHERE子句條件的元組。WHERE子句:指定要?jiǎng)h除的元組。缺省表示要?jiǎng)h除表中的全部元組,表的定義仍在字典中。單屬性構(gòu)成的碼有兩種說明方法:定義為列級(jí)約束條件;定義為表級(jí)約束條件。對(duì)多個(gè)屬性構(gòu)成的碼只有一種說明方法:定義為表級(jí)約束條件。Ⅰ.檢查主碼值是否唯一,如果不唯一則拒絕插入或修改。Ⅰ.檢查主碼的各個(gè)屬性是否為空,只要有一個(gè)為空就拒絕插入或修改。TETABLEFOREIGNKEYREFERENCES短語指明這些外碼參照哪些表的主碼。參照完整性違約處理:Ⅰ.拒絕(NOACTION)執(zhí)行----默認(rèn)策略Ⅰ.級(jí)聯(lián)(CASCADE)操作Ⅰ.設(shè)置為空值(SET-NULL)對(duì)于參照完整性,除了應(yīng)該定義外碼,還應(yīng)定義外碼列是否允許空值。觸發(fā)器(Trigger)是用戶定義在關(guān)系表上的一類由事件驅(qū)動(dòng)的特殊過程,由服務(wù)器自動(dòng)激活,可以進(jìn)行更為復(fù)雜的檢查和操作,具有更精細(xì)和更強(qiáng)大的數(shù)據(jù)控制能力。語法格式:CREATETRIGGERONFOREACH{ROW|STATEMENT} [WHEN<觸發(fā)條件>]作體>定義了多個(gè)觸發(fā)器。個(gè)觸發(fā)器激活時(shí)遵循如下的執(zhí)行順序:Ⅰ.執(zhí)行該表上的BEFORE觸發(fā)器;Ⅰ.激活觸發(fā)器的SQL語句;Ⅰ.執(zhí)行該表上的AFTER觸發(fā)器。語法格式:DROPTRIGGER發(fā)器名>ON<表名>;觸發(fā)器必須是一個(gè)已經(jīng)創(chuàng)建的觸發(fā)器,并且只能由具有相應(yīng)權(quán)限的用戶刪除。Ⅰ.定義部分ARE常量、游標(biāo)、異常等定義的變量、常量等只能在該基本塊中使用,當(dāng)基本塊執(zhí)行結(jié)束時(shí),定義就不再存在。Ⅰ.執(zhí)行部分INPTION理部分END;Ⅰ.PL/SQL中定義變量的語法形式是::變量名數(shù)據(jù)類型[[NOTNULL]:=初值表達(dá)式]或變量名數(shù)據(jù)類型[[NOTNULL]初值表達(dá)式]Ⅰ.常量的定義類似于變量的定義::常量名數(shù)據(jù)類型CONSTANT:=常量表達(dá)式并且該值在存在期間或常量的作用域內(nèi)不能改變。如果試圖修Ⅰ.賦值語句Ⅰ.條件控制語句AIFconditionTHENtatementsNDIFBIFconditionTHENstatementsstatementsDIFCTHENELSEIFIF語句可以嵌套。Ⅰ.循環(huán)控制語句LOOPtatementsLOOPLOOP語句塊能夠結(jié)束。WHILELOOPWHILEconditionLOOPtatementsLOOP列,如果條件為假,則跳過循環(huán)并把控制傳遞給下一個(gè)語句。OOPFORcountIN[REVERSE]bound1…bound2LOOPtatementsLOOPⅠ.錯(cuò)誤處理:的類型去執(zhí)行異常處理語句。完善的異常處理機(jī)制。Ⅰ.創(chuàng)建存儲(chǔ)過程:CREATEProcedure過程名([參數(shù)1,參數(shù)2,...])AS<PL/SQL塊>;過程名:數(shù)據(jù)庫服務(wù)器合法的對(duì)象標(biāo)識(shí)。入?yún)?shù)、輸出參數(shù)或輸入/輸出參數(shù)。默認(rèn)為輸入?yún)?shù)。LⅠ.執(zhí)行存儲(chǔ)過程:CALLPERFORMPLSQL庫服務(wù)器支持在過程體中調(diào)用其他存儲(chǔ)過程。Ⅰ.刪除存儲(chǔ)過程DROPPROCEDURE過程名();ERER定屬性。再用SQL語言編寫程序?qū)崿F(xiàn)操作。最后對(duì)系統(tǒng)進(jìn)行調(diào)試與測(cè)試,確定系統(tǒng)是否完成設(shè)計(jì)要求。,主要涉及到銀行與用戶兩個(gè)實(shí)體,還有交易這個(gè)聯(lián)系。 m m開始開始需求分析畫流程圖畫E-R圖設(shè)計(jì)表編寫SQL程序調(diào)試與測(cè)試結(jié)束結(jié)束Bank表:表示銀行信息,屬性有名稱,網(wǎng)點(diǎn),存款總額。其中網(wǎng)點(diǎn)號(hào)為主碼。銀行網(wǎng)點(diǎn)。其中賬號(hào)為主碼。trade用于記錄每次交易信息,屬性有流水號(hào),姓名,賬號(hào),交易項(xiàng)目,交易金額,交易時(shí)間,交易對(duì)象,余額,上次余額,網(wǎng)點(diǎn)。其中流水號(hào)為主碼。建立關(guān)系圖REATETRIGGERtotleONdbousercustomerDATEASifupdate(銀行)update總存款額set存款總額=(selectSUM(余額)fromuser_informwhere銀行總存款額.customerCREATETRIGGER交易項(xiàng)目ONdbo.tradeDATEASifupdate(余額)if((select余額fromtradewhere流水號(hào)=(selectmax(流水號(hào))fromtrade))>(select上次余額fromtradewhere(selectmax(流水號(hào))fromtrade)))updatetradeset交易項(xiàng)目='支入'where流水號(hào)=(selectmax(流水號(hào))fromtrade)and賬號(hào)=(select賬號(hào)fromtradewhere流水號(hào)=(selectmax(流水號(hào))fromtrade))updatetradeset交易項(xiàng)目='支出'where流水號(hào)=(selectmax(流水號(hào))fromtrade)and賬號(hào)=(select賬號(hào)fromtradewhere流水號(hào)=(selectmax(流水號(hào))fromtrade))CREATETRIGGER交易余額ONdbo.tradeDATEASifupdate(交易金額)beginupdatetradeset余額=(select賬戶余額fromcustomerwhere賬號(hào)=(select賬號(hào)fromtradewhere流水號(hào)=(selectmax(流水號(hào))fromtrade)))where流水號(hào)=(selectmax(流水號(hào))fromtradeCREATEproc交易@cardvarchar(18)begininserttrade,賬號(hào),姓名,余額,上次余額)selectgetdate(),@card,姓名,賬戶余額,賬戶余額fromcustomerawherea.賬號(hào)=@cardCREATEPROCEDUREcardvarchar(18),@ckemoney)SINexec交易@cardupdatecustomerset賬戶余額=(賬戶余額+@cke)where賬號(hào)=@cardupdatetradeset交易金額=@ckewhere賬號(hào)=@cardand流水號(hào)=(selectmax(流水號(hào))fromtradewhere賬號(hào)=@card)selectfromcustomerwhere@cardURNCREATEprocedure開戶@namevarchar(20),@idvarchar(18),@cardvarchar(18)output,@balneybegintrimstrrandlenltrimstrrandinsertcustomer姓名,ID,賬號(hào),賬戶余額)valuesgetdate(),@name,@id,@card,@bal)CREATEPROCEDUREcardvarchar(18))SINexec交易@cardupdatetradeset交易項(xiàng)目='查詢'where賬號(hào)=@cardand流水號(hào)=(selectmax(流水號(hào))fromtradewhere賬號(hào)=@card)selectfromcustomerwhere@cardselectfromtradewhere@cardURNCREATEPROCEDUREcardvarchar(18),@card2varchar(18),@zzemoney)SINexec交易@card1updatecustomerset賬戶余額=(賬戶余額-@zze)where賬號(hào)=@card1if((select賬戶余額fromcustomerwhere賬號(hào)=@card1)<0)beginprint'余額不足!'updatecustomerset余額=(賬戶余額+@zze)where賬號(hào)=@card1endbeginupdatetradeset交易項(xiàng)目='轉(zhuǎn)出'where賬號(hào)=@card1and流水號(hào)=(selectmax(流水號(hào))fromtradewhere賬號(hào)=@card1)updatetradeset交易金額=@zzewhere賬號(hào)=@card1and流水號(hào)=(selectmax(流水號(hào))fromtradewhere賬號(hào)=@card1)selectfromcustomerwherecardselectfromtradewherecard1exec交易@card2updatecustomerset賬戶余額=(賬戶余額+@zze)where賬號(hào)=@card2updatetradeset交易項(xiàng)目='轉(zhuǎn)入'where賬號(hào)=@card2and流水號(hào)=(selectmax(流水號(hào))fromtradewhere賬號(hào)=@card2)updatetradeset交易金額=@zzewhere賬號(hào)=@card2and流水號(hào)=(selectmax(流水號(hào))fromtradewhere賬號(hào)=@card2)selectfromcustomerwhere=@card2selectfromtradewhere=@card2URNCREATEPROCEDURE取款(@cardvarchar(18),@qkemoney)SINexec交易@cardupdatecustomerset賬戶余額=(賬戶余額-@qke)where賬號(hào)=@cardif((select賬戶余額fromcustomerwhere賬號(hào)=@card)<0)beginprint'賬戶余額不足!'updatecustomerset余額=(賬戶余額+@qke)where賬號(hào)=@cardendbeginupdatetradeset交易項(xiàng)目='取款'where賬號(hào)=@cardand流水號(hào)=(selectmax(流水號(hào))fromtradewhere賬號(hào)=@card)updatetradeset交易金額=@qke
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度LED屏幕亮度調(diào)節(jié)與節(jié)能改造合同
- 2024年度知識(shí)產(chǎn)權(quán)保護(hù)合同:MLB棒球帽正品知識(shí)分享
- 2024年度物業(yè)服務(wù)合同標(biāo)的及安全生產(chǎn)責(zé)任書
- 2024年多功能空調(diào)維修合作協(xié)議
- 2024裝修合同該如何寫范文
- 2024辦公家具購買合同
- 2024年城市基礎(chǔ)設(shè)施建設(shè)合同 with 工程質(zhì)量與投資預(yù)算
- 2024年出版發(fā)行代理合同
- 【初中生物】脊椎動(dòng)物(第2課時(shí)兩棲動(dòng)物和爬行動(dòng)物) 2024-2025學(xué)年七年級(jí)生物上學(xué)期(人教版2024)
- 2024加工貿(mào)易合同
- GB/T 625-2024化學(xué)試劑硫酸
- 綜合辦公樓裝修改造工程施工組織設(shè)計(jì)方案
- 三人直播帶貨協(xié)議書范文模板
- 北京郵電大學(xué)《云計(jì)算》2023-2024學(xué)年期末試卷
- QCT1177-2022汽車空調(diào)用冷凝器
- 24春國家開放大學(xué)《學(xué)前兒童美術(shù)教育活動(dòng)指導(dǎo)》期末大作業(yè)參考答案
- 數(shù)字化時(shí)代背景下教師角色的思考
- 和諧相處之道心理健康課件
- 醫(yī)院應(yīng)急演練:食物中毒
- 2021版特種設(shè)備目錄
- 中國綜合卒中中心評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論