版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——《數(shù)據(jù)庫原理及應(yīng)用》試驗指導(dǎo)書《數(shù)據(jù)庫原理及應(yīng)用》試驗指導(dǎo)書
試驗一數(shù)據(jù)庫的建立
試驗?zāi)康模喊盐諗?shù)據(jù)庫的創(chuàng)立、基本表的創(chuàng)立和數(shù)據(jù)插入的方法
試驗要求:使用Oracle11g進(jìn)行數(shù)據(jù)庫的創(chuàng)立、基本表的創(chuàng)立和數(shù)據(jù)插入試驗條件:計算機,Oracle11g試驗內(nèi)容:
1、假設(shè)你是DBA,需要定義系統(tǒng)中的所有表。試根據(jù)下面給出的關(guān)系模式,用SQL完成數(shù)據(jù)表的建立。
假設(shè)“阿里巴巴〞酒店數(shù)據(jù)庫中有如下的幾個關(guān)系模式:
(1)客戶個人信息(身份證號,姓名,性別,年齡,工作單位)(2)客戶入住信息(身份證號,客房號,入住時間,退房時間)(3)客房(客房號,客房類型號)
(4)定價(客房類型號,客房類型名,單價)(5)訂票(身份證號,機票號,訂票時間)
(6)機票(機票號,起始地,目的地,起飛時間,到達(dá)時間,機票價格,機
票狀態(tài),航空公司號)
注:機票狀態(tài)只有三種0:未出票
1:已出票,但未被客戶取走2:已出票且已被客戶取走(7)航空公司(航空公司號,航空公司名,電話)
(8)雇員(雇員號,姓名,雇員年齡,雇傭日期,被投訴次數(shù))
(9)清潔(雇員號,客房號)
說明:數(shù)據(jù)庫表中各個字段的數(shù)據(jù)類型及寬度,請根據(jù)實際狀況自定。數(shù)據(jù)
庫名、表名、字段名中英文均可,但需要有一定的實際含義。
2、試根據(jù)下面的完整性約束要求,用SQL對上面已經(jīng)建立好的“阿里巴巴〞酒店數(shù)據(jù)庫表進(jìn)行完整性約束定義。
(1)雇員的年齡必需大于20歲小于55歲,被投訴次數(shù)不能超過10次。(2)客戶的性別只能是“男〞或“女〞。
(3)客戶每次入住的客房號和入住時間不能為空。
(4)各種類型客房的定價不得低于100元,也不得高于2000元。(5)機票的狀態(tài)只能有三種:0:未出票
1:已出票,但未被客戶取走2:已出票且已被客戶取走
試驗二數(shù)據(jù)庫的查詢、更新
試驗?zāi)康模喊盐諗?shù)據(jù)庫的查詢、更新的方法
試驗要求:使用Oracle11g實現(xiàn)數(shù)據(jù)庫的查詢、更新操作試驗條件:計算機,Oracle11g試驗內(nèi)容:
1、試用SQL完成下面10個查詢操作。
(1)查詢各客戶的姓名和工作單位。(2)查詢“張樺〞客戶的身份證號和年齡。(3)查詢標(biāo)準(zhǔn)房的價格。
(4)查詢“李明〞先生所住的客房號碼及入住的時間。(5)查詢“張樺〞先生所訂客房的價格。(6)查詢還有哪些機票已經(jīng)出票但未被取走。(7)查詢被投訴的雇員的姓名及次數(shù)。(8)查詢各雇員姓名及所負(fù)責(zé)清潔的客房號。(9)查詢“張庭〞雇員負(fù)責(zé)清潔的客房的號碼。(10)查詢各航空公司的名稱和電話。2、試用SQL完成下面6個查詢操作。
(1)查詢空標(biāo)準(zhǔn)房的房間號。
(2)查詢身份證號為客戶最近入住酒店的日期是什
么,住了幾天。(3)查詢空雙人房的數(shù)目。
(4)哪些機票已出票,但還未被取走,查詢訂購這些機票的房客姓名和客房
號,以便及時通知他們來取票。(5)查詢從未訂過機票的客戶的數(shù)目。
(6)查詢總共從東方航空公司(EASTERNAIRLINES)訂購了多少張機票。3、試用SQL完成如下的更新操作
(1)酒店新進(jìn)了一名清潔客房的雇員,其雇員號為“E110〞,姓名是“張新〞,雇
傭日期為“7/20/2023〞,試將該雇員的信息插入相應(yīng)的表。
(2)身份證號為,姓名是“張明〞,年齡為35歲的男客
戶到酒店訂了一間客房號為“1100〞的客房,請對相應(yīng)的表進(jìn)行相應(yīng)的操作。
(3)身份證號為的客戶退房了,請對相應(yīng)的表進(jìn)行
相應(yīng)的操作。
(4)將“E101〞雇員的投訴次數(shù)加1。
(5)酒店欲開除被投訴次數(shù)大于5次的雇員,試對相應(yīng)的表進(jìn)行相應(yīng)的操作。
試驗三視圖、存儲過程的使用
試驗?zāi)康模喊盐諗?shù)據(jù)庫視圖、存儲過程的創(chuàng)立、修改和刪除的方法試驗要求:使用Oracle11g實現(xiàn)數(shù)據(jù)庫視圖、存儲過程的創(chuàng)立和使用試驗條件:計算機,Oracle11g試驗內(nèi)容:
該試驗用學(xué)生借書數(shù)據(jù)庫XSBOOK,學(xué)生借書數(shù)據(jù)庫相關(guān)信息如下:數(shù)據(jù)庫名:XSBOOK數(shù)據(jù)文件名:XSBOOK日志文件名:XSBOOK_Log
圖書借閱系統(tǒng)的數(shù)據(jù)庫為XSBOOK,該數(shù)據(jù)庫主要由學(xué)生(XS)、圖書(BOOK)、借閱(JY)3個表構(gòu)成,依托3個基本表創(chuàng)立視圖和存儲過程。
表1學(xué)生信息表(XS)表結(jié)構(gòu)
字段名借書證號姓名專業(yè)類型與寬度CHAR(8)VARCHAR2(8)VARCHAR2(20)是否主碼是否允許空值√×××××說明性別借書量CHAR(2)INT××
××默認(rèn)值為0表2學(xué)生信息表(XS)樣本數(shù)據(jù)
借書證號1000000110000002姓名王娟李宏專業(yè)名計算機計算機計算機英語英語
表3圖書信息表(BOOK)結(jié)構(gòu)
字段名ISBN書名類型與寬度CHAR(16)VARCHAR2(30)VARCHAR2(8)是否主碼是否允許空值√××××××
×××××××說明當(dāng)對書進(jìn)行插入、刪除時,復(fù)本量應(yīng)等于庫存量性別女男男女男借書量4332010000003朱小波20000001李小麗20000002吳濤出版社VARCHAR2(20)價格復(fù)本量庫存量FLOATINTINT
表4圖書信息表(BOOK)樣本數(shù)據(jù)
ISBN7-111-06359-Web站點安全77-113-04908-ASP.NET程序設(shè)陳惠貞機械工業(yè)出版社557計109劉宗田機械工業(yè)出版社1752書名作者出版社價格復(fù)本量庫存量7-115-07715-ASP&WEB數(shù)據(jù)王國榮人民郵電出版社5907-115-10162-計算機網(wǎng)絡(luò)教程謝希仁人民郵電出版社2807-302-03035-C語言程序設(shè)計譚浩強清華大學(xué)出版社4897-505-37908-WEB程序設(shè)計9
表5借閱表(JY)結(jié)構(gòu)
字段名類型與寬度是否主碼是否允許空值借書證號CHAR(8)ISBNCHAR(16)××√×××××說明當(dāng)借一本書時,BOOK的庫存量應(yīng)減1,同時,借書人的借書量應(yīng)加1;當(dāng)還一本書時,BOOK的庫存量應(yīng)加1,同時,借書人吉根林電子工業(yè)出版社25871061210庫52索書號CHAR(10)借書時間DATE的借書量應(yīng)減1
表6借閱表(JY)樣本數(shù)據(jù)
借書證號100000011000000110000001100000011000000210000002100000021000000310000003100000032000000120000001
1、視圖的創(chuàng)立和使用
(1)把3個基本表聯(lián)系起來,便利需要3表關(guān)聯(lián)的功能使用。SQL命令如下:
ISBN索書號借書時間2023-03-012023-05-102023-05-102023-09-012023-03-102023-03-112023-03-112023-04-102023-04-102023-05-192023-04-192023-04-197-111-06359-711000000017-111-06359-711000000027-115-07715-031000000017-505-37908-961000000017-111-06359-711000000037-113-04908-721000000017-302-03035-951000000017-302-03035-951000000027-302-03035-951000000037-115-10162-041000000017-115-10162-041000000027-302-03035-95100000004CREATEVIEWRBL
AS
SELECTXS.借書證號,JY.索書號,JY.ISBN,BOOK.書名,
BOOK.出版社,BOOK.價格,JY.借書時間FROMXS
INNERJOINJYONXS.借書證號=JY.借書證號INNERJOINBOOKONBOOK.ISBN=JY.ISBN
(2)功能測試SELECT*FROMRBL
觀測3表關(guān)聯(lián)的字段數(shù)據(jù)正確性。2、存儲過程的創(chuàng)立和使用?參數(shù)
借書證號(in_ReaderID)、ISBN(in_ISBN)、圖書ID(in_BookID)、執(zhí)行信息(out_str)。?實現(xiàn)功能
根據(jù)存儲過程的前3個參數(shù),實現(xiàn)讀者圖書“借閱〞。第4個參數(shù)為輸出參數(shù),將存儲過程的執(zhí)行狀況以字符串形式賦予此參數(shù)。?編寫思路
(1)根據(jù)“借書證號〞查詢XS表是否存在該讀者,假使不存在,則將輸出參數(shù)out_str賦值為“該讀者不存在〞并返回0,存儲過程終止,表示不能借書。
(2)根據(jù)“ISBN〞查詢BOOK中是否存在該圖書,假使不存在,則將輸出參數(shù)賦值為“該圖書不存在〞并返回0,存儲過程終止,表示不能借書。
(3)根據(jù)“借書證號〞查詢XS表中該讀者的借書量。假使借書量=5,則將輸出參
數(shù)賦值為“讀者借書量不能大于5〞并返回0,存儲過程終止,表示不能借書。(4)根據(jù)“ISBN〞查詢BOOK表中該圖書的庫存量。假使庫存量=0,則將輸出參數(shù)賦值為“圖書庫存量為0〞并返回0,存儲過程終止,表示不能借書。
(5)查詢JY表中該讀者是否已經(jīng)借閱該圖書,假使已經(jīng)借過,則將輸出參數(shù)賦值為“讀者已經(jīng)借過該書〞并返回0,存儲過程終止,表示不能借書。
(6)查詢JY表中該索書號是否已經(jīng)存在,假使存在則將輸出參數(shù)賦值為“該索書號已存在〞并返回0,存儲過程終止,表示不能添加借書記錄。
(7)使JY表增加一條該讀者借書記錄;XS表中該讀者的借書量加1;BOOK表中該圖書(對應(yīng)ISBN)記錄的庫存量減1。存儲過程終止,將輸出參數(shù)賦值為“借書成功〞并返回1,表示借書成功。
(8)假使存儲過程執(zhí)行過程中遇到錯誤,則回滾之前進(jìn)行的操作,并將輸出參數(shù)賦值為“執(zhí)行過程中遇到錯誤〞并返回0,表示存儲過程執(zhí)行過程中遇到錯誤,回滾到執(zhí)行存儲過程前的狀態(tài)。?實現(xiàn)方法PL/SQL如下:
CREATEORREPLACEPROCEDUREBook_Borrow(in_ReaderIDinchar,in_ISBNinchar,in_BookIDinchar,out_stroutchar)IS
Ct_ReaderCt_ISBN
Number(10);Number(10);
Ct_MaxReaderNumber(10);
Ct_StoreNumber(10);Ct_HaveReadNumber(10);Ct_BookID
Number(10);
Error_NumerNumber(10);no_resultBEGIN
Error_Numer:=0;out_str:='';
SELECTcount(*)intoCt_ReaderFROMXSWHERE借書證號=in_ReaderID;
IFCt_Reader5THENBEGIN
out_str:='讀者借書量不能大于5';Error_Numer:=1;END;ENDIF;
SELECT庫存量intoCt_StoreFROMBOOKWHEREISBN=in_ISBN;IFCt_Store=0THENBEGIN
out_str:='圖書庫存量為0';Error_Numer:=1;END;ENDIF;
SELECTcount(*)intoCt_HaveReadFROMJYWHERE借書證號=in_ReaderIDandISBN=in_ISBN;IFCt_HaveRead>0THenBEGIN
out_str:='讀者已經(jīng)借過該書';
Error_Numer:=1;END;ENDIF;
SELECTcount(*)intoCt_BookIDFROMJYWHERE索書號=in_BookID;IFCt_BookID>0THENBEGIN
out_str:='索書號已存在';Error_Numer:=1;END;ENDIF;
IFError_Numer=0THEN
INSERTINTOJYVALUES(in_ReaderID,in_ISBN,in_BookID,sysdate);UPDATEXSSET借書量=借書量+1WHERE借書證號=in_ReaderID;UPDATEBOOKSET庫存量=庫存量-1WHEREISBN=in_ISBN;out_str:='借書成功';IFSQL%NOTFOUNDTHENRAISEno_result;ENDIF;COMMIT;
dbms_outpu
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 麻風(fēng)的臨床護理
- 紫癜的臨床護理
- 【小學(xué)】重陽節(jié)主題班會課件 愛在重陽
- 巨細(xì)胞動脈炎的健康宣教
- JJF(陜) 086-2022 同軸度測試儀校準(zhǔn)規(guī)范
- 課課件-嚴(yán)重創(chuàng)傷
- 《設(shè)計變更講座》課件
- 學(xué)期班級教學(xué)計劃任務(wù)工作安排
- 《放置冠狀動脈支架》課件
- 學(xué)生自主管理與評價方案計劃
- 山東師范大學(xué)《計算機網(wǎng)絡(luò)》期末考試復(fù)習(xí)題及參考答案
- 《客艙安全與應(yīng)急處置》-課件:15秒開艙門
- 2024開展“大學(xué)習(xí)、大培訓(xùn)、大考試”考試卷(含答案)
- 第九屆全國青年數(shù)學(xué)教師優(yōu)秀課課件 四川-魏靜-課件-函數(shù)的極值與導(dǎo)數(shù)
- 中班數(shù)學(xué)《帽子有什么不同》課件
- 浙江省嘉興市2023-2024學(xué)年八年級上學(xué)期期末英語試題
- 水泵維護保養(yǎng)方案
- 空表機械加工工藝過程卡片-工序卡片-工序附圖
- 信息化作戰(zhàn)平臺
- 有機硅合成革行業(yè)報告
- 個人勞動防護用品的使用和維護安全培訓(xùn)課件
評論
0/150
提交評論