版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——《數(shù)據(jù)庫(kù)原理及應(yīng)用》試驗(yàn)指導(dǎo)書(shū)《數(shù)據(jù)庫(kù)原理及應(yīng)用》試驗(yàn)指導(dǎo)書(shū)
試驗(yàn)一數(shù)據(jù)庫(kù)的建立
試驗(yàn)?zāi)康模喊盐諗?shù)據(jù)庫(kù)的創(chuàng)立、基本表的創(chuàng)立和數(shù)據(jù)插入的方法
試驗(yàn)要求:使用Oracle11g進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)立、基本表的創(chuàng)立和數(shù)據(jù)插入試驗(yàn)條件:計(jì)算機(jī),Oracle11g試驗(yàn)內(nèi)容:
1、假設(shè)你是DBA,需要定義系統(tǒng)中的所有表。試根據(jù)下面給出的關(guān)系模式,用SQL完成數(shù)據(jù)表的建立。
假設(shè)“阿里巴巴〞酒店數(shù)據(jù)庫(kù)中有如下的幾個(gè)關(guān)系模式:
(1)客戶(hù)個(gè)人信息(身份證號(hào),姓名,性別,年齡,工作單位)(2)客戶(hù)入住信息(身份證號(hào),客房號(hào),入住時(shí)間,退房時(shí)間)(3)客房(客房號(hào),客房類(lèi)型號(hào))
(4)定價(jià)(客房類(lèi)型號(hào),客房類(lèi)型名,單價(jià))(5)訂票(身份證號(hào),機(jī)票號(hào),訂票時(shí)間)
(6)機(jī)票(機(jī)票號(hào),起始地,目的地,起飛時(shí)間,到達(dá)時(shí)間,機(jī)票價(jià)格,機(jī)
票狀態(tài),航空公司號(hào))
注:機(jī)票狀態(tài)只有三種0:未出票
1:已出票,但未被客戶(hù)取走2:已出票且已被客戶(hù)取走(7)航空公司(航空公司號(hào),航空公司名,電話(huà))
(8)雇員(雇員號(hào),姓名,雇員年齡,雇傭日期,被投訴次數(shù))
(9)清潔(雇員號(hào),客房號(hào))
說(shuō)明:數(shù)據(jù)庫(kù)表中各個(gè)字段的數(shù)據(jù)類(lèi)型及寬度,請(qǐng)根據(jù)實(shí)際狀況自定。數(shù)據(jù)
庫(kù)名、表名、字段名中英文均可,但需要有一定的實(shí)際含義。
2、試根據(jù)下面的完整性約束要求,用SQL對(duì)上面已經(jīng)建立好的“阿里巴巴〞酒店數(shù)據(jù)庫(kù)表進(jìn)行完整性約束定義。
(1)雇員的年齡必需大于20歲小于55歲,被投訴次數(shù)不能超過(guò)10次。(2)客戶(hù)的性別只能是“男〞或“女〞。
(3)客戶(hù)每次入住的客房號(hào)和入住時(shí)間不能為空。
(4)各種類(lèi)型客房的定價(jià)不得低于100元,也不得高于2000元。(5)機(jī)票的狀態(tài)只能有三種:0:未出票
1:已出票,但未被客戶(hù)取走2:已出票且已被客戶(hù)取走
試驗(yàn)二數(shù)據(jù)庫(kù)的查詢(xún)、更新
試驗(yàn)?zāi)康模喊盐諗?shù)據(jù)庫(kù)的查詢(xún)、更新的方法
試驗(yàn)要求:使用Oracle11g實(shí)現(xiàn)數(shù)據(jù)庫(kù)的查詢(xún)、更新操作試驗(yàn)條件:計(jì)算機(jī),Oracle11g試驗(yàn)內(nèi)容:
1、試用SQL完成下面10個(gè)查詢(xún)操作。
(1)查詢(xún)各客戶(hù)的姓名和工作單位。(2)查詢(xún)“張樺〞客戶(hù)的身份證號(hào)和年齡。(3)查詢(xún)標(biāo)準(zhǔn)房的價(jià)格。
(4)查詢(xún)“李明〞先生所住的客房號(hào)碼及入住的時(shí)間。(5)查詢(xún)“張樺〞先生所訂客房的價(jià)格。(6)查詢(xún)還有哪些機(jī)票已經(jīng)出票但未被取走。(7)查詢(xún)被投訴的雇員的姓名及次數(shù)。(8)查詢(xún)各雇員姓名及所負(fù)責(zé)清潔的客房號(hào)。(9)查詢(xún)“張庭〞雇員負(fù)責(zé)清潔的客房的號(hào)碼。(10)查詢(xún)各航空公司的名稱(chēng)和電話(huà)。2、試用SQL完成下面6個(gè)查詢(xún)操作。
(1)查詢(xún)空標(biāo)準(zhǔn)房的房間號(hào)。
(2)查詢(xún)身份證號(hào)為客戶(hù)最近入住酒店的日期是什
么,住了幾天。(3)查詢(xún)空雙人房的數(shù)目。
(4)哪些機(jī)票已出票,但還未被取走,查詢(xún)訂購(gòu)這些機(jī)票的房客姓名和客房
號(hào),以便及時(shí)通知他們來(lái)取票。(5)查詢(xún)從未訂過(guò)機(jī)票的客戶(hù)的數(shù)目。
(6)查詢(xún)總共從東方航空公司(EASTERNAIRLINES)訂購(gòu)了多少?gòu)垯C(jī)票。3、試用SQL完成如下的更新操作
(1)酒店新進(jìn)了一名清潔客房的雇員,其雇員號(hào)為“E110〞,姓名是“張新〞,雇
傭日期為“7/20/2023〞,試將該雇員的信息插入相應(yīng)的表。
(2)身份證號(hào)為,姓名是“張明〞,年齡為35歲的男客
戶(hù)到酒店訂了一間客房號(hào)為“1100〞的客房,請(qǐng)對(duì)相應(yīng)的表進(jìn)行相應(yīng)的操作。
(3)身份證號(hào)為的客戶(hù)退房了,請(qǐng)對(duì)相應(yīng)的表進(jìn)行
相應(yīng)的操作。
(4)將“E101〞雇員的投訴次數(shù)加1。
(5)酒店欲開(kāi)除被投訴次數(shù)大于5次的雇員,試對(duì)相應(yīng)的表進(jìn)行相應(yīng)的操作。
試驗(yàn)三視圖、存儲(chǔ)過(guò)程的使用
試驗(yàn)?zāi)康模喊盐諗?shù)據(jù)庫(kù)視圖、存儲(chǔ)過(guò)程的創(chuàng)立、修改和刪除的方法試驗(yàn)要求:使用Oracle11g實(shí)現(xiàn)數(shù)據(jù)庫(kù)視圖、存儲(chǔ)過(guò)程的創(chuàng)立和使用試驗(yàn)條件:計(jì)算機(jī),Oracle11g試驗(yàn)內(nèi)容:
該試驗(yàn)用學(xué)生借書(shū)數(shù)據(jù)庫(kù)XSBOOK,學(xué)生借書(shū)數(shù)據(jù)庫(kù)相關(guān)信息如下:數(shù)據(jù)庫(kù)名:XSBOOK數(shù)據(jù)文件名:XSBOOK日志文件名:XSBOOK_Log
圖書(shū)借閱系統(tǒng)的數(shù)據(jù)庫(kù)為XSBOOK,該數(shù)據(jù)庫(kù)主要由學(xué)生(XS)、圖書(shū)(BOOK)、借閱(JY)3個(gè)表構(gòu)成,依托3個(gè)基本表創(chuàng)立視圖和存儲(chǔ)過(guò)程。
表1學(xué)生信息表(XS)表結(jié)構(gòu)
字段名借書(shū)證號(hào)姓名專(zhuān)業(yè)類(lèi)型與寬度CHAR(8)VARCHAR2(8)VARCHAR2(20)是否主碼是否允許空值√×××××說(shuō)明性別借書(shū)量CHAR(2)INT××
××默認(rèn)值為0表2學(xué)生信息表(XS)樣本數(shù)據(jù)
借書(shū)證號(hào)1000000110000002姓名王娟李宏專(zhuān)業(yè)名計(jì)算機(jī)計(jì)算機(jī)計(jì)算機(jī)英語(yǔ)英語(yǔ)
表3圖書(shū)信息表(BOOK)結(jié)構(gòu)
字段名ISBN書(shū)名類(lèi)型與寬度CHAR(16)VARCHAR2(30)VARCHAR2(8)是否主碼是否允許空值√××××××
×××××××說(shuō)明當(dāng)對(duì)書(shū)進(jìn)行插入、刪除時(shí),復(fù)本量應(yīng)等于庫(kù)存量性別女男男女男借書(shū)量4332010000003朱小波20000001李小麗20000002吳濤出版社VARCHAR2(20)價(jià)格復(fù)本量庫(kù)存量FLOATINTINT
表4圖書(shū)信息表(BOOK)樣本數(shù)據(jù)
ISBN7-111-06359-Web站點(diǎn)安全77-113-04908-ASP.NET程序設(shè)陳惠貞機(jī)械工業(yè)出版社557計(jì)109劉宗田機(jī)械工業(yè)出版社1752書(shū)名作者出版社價(jià)格復(fù)本量庫(kù)存量7-115-07715-ASP&WEB數(shù)據(jù)王國(guó)榮人民郵電出版社5907-115-10162-計(jì)算機(jī)網(wǎng)絡(luò)教程謝希仁人民郵電出版社2807-302-03035-C語(yǔ)言程序設(shè)計(jì)譚浩強(qiáng)清華大學(xué)出版社4897-505-37908-WEB程序設(shè)計(jì)9
表5借閱表(JY)結(jié)構(gòu)
字段名類(lèi)型與寬度是否主碼是否允許空值借書(shū)證號(hào)CHAR(8)ISBNCHAR(16)××√×××××說(shuō)明當(dāng)借一本書(shū)時(shí),BOOK的庫(kù)存量應(yīng)減1,同時(shí),借書(shū)人的借書(shū)量應(yīng)加1;當(dāng)還一本書(shū)時(shí),BOOK的庫(kù)存量應(yīng)加1,同時(shí),借書(shū)人吉根林電子工業(yè)出版社25871061210庫(kù)52索書(shū)號(hào)CHAR(10)借書(shū)時(shí)間DATE的借書(shū)量應(yīng)減1
表6借閱表(JY)樣本數(shù)據(jù)
借書(shū)證號(hào)100000011000000110000001100000011000000210000002100000021000000310000003100000032000000120000001
1、視圖的創(chuàng)立和使用
(1)把3個(gè)基本表聯(lián)系起來(lái),便利需要3表關(guān)聯(lián)的功能使用。SQL命令如下:
ISBN索書(shū)號(hào)借書(shū)時(shí)間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.借書(shū)證號(hào),JY.索書(shū)號(hào),JY.ISBN,BOOK.書(shū)名,
BOOK.出版社,BOOK.價(jià)格,JY.借書(shū)時(shí)間FROMXS
INNERJOINJYONXS.借書(shū)證號(hào)=JY.借書(shū)證號(hào)INNERJOINBOOKONBOOK.ISBN=JY.ISBN
(2)功能測(cè)試SELECT*FROMRBL
觀測(cè)3表關(guān)聯(lián)的字段數(shù)據(jù)正確性。2、存儲(chǔ)過(guò)程的創(chuàng)立和使用?參數(shù)
借書(shū)證號(hào)(in_ReaderID)、ISBN(in_ISBN)、圖書(shū)ID(in_BookID)、執(zhí)行信息(out_str)。?實(shí)現(xiàn)功能
根據(jù)存儲(chǔ)過(guò)程的前3個(gè)參數(shù),實(shí)現(xiàn)讀者圖書(shū)“借閱〞。第4個(gè)參數(shù)為輸出參數(shù),將存儲(chǔ)過(guò)程的執(zhí)行狀況以字符串形式賦予此參數(shù)。?編寫(xiě)思路
(1)根據(jù)“借書(shū)證號(hào)〞查詢(xún)XS表是否存在該讀者,假使不存在,則將輸出參數(shù)out_str賦值為“該讀者不存在〞并返回0,存儲(chǔ)過(guò)程終止,表示不能借書(shū)。
(2)根據(jù)“ISBN〞查詢(xún)BOOK中是否存在該圖書(shū),假使不存在,則將輸出參數(shù)賦值為“該圖書(shū)不存在〞并返回0,存儲(chǔ)過(guò)程終止,表示不能借書(shū)。
(3)根據(jù)“借書(shū)證號(hào)〞查詢(xún)XS表中該讀者的借書(shū)量。假使借書(shū)量=5,則將輸出參
數(shù)賦值為“讀者借書(shū)量不能大于5〞并返回0,存儲(chǔ)過(guò)程終止,表示不能借書(shū)。(4)根據(jù)“ISBN〞查詢(xún)BOOK表中該圖書(shū)的庫(kù)存量。假使庫(kù)存量=0,則將輸出參數(shù)賦值為“圖書(shū)庫(kù)存量為0〞并返回0,存儲(chǔ)過(guò)程終止,表示不能借書(shū)。
(5)查詢(xún)JY表中該讀者是否已經(jīng)借閱該圖書(shū),假使已經(jīng)借過(guò),則將輸出參數(shù)賦值為“讀者已經(jīng)借過(guò)該書(shū)〞并返回0,存儲(chǔ)過(guò)程終止,表示不能借書(shū)。
(6)查詢(xún)JY表中該索書(shū)號(hào)是否已經(jīng)存在,假使存在則將輸出參數(shù)賦值為“該索書(shū)號(hào)已存在〞并返回0,存儲(chǔ)過(guò)程終止,表示不能添加借書(shū)記錄。
(7)使JY表增加一條該讀者借書(shū)記錄;XS表中該讀者的借書(shū)量加1;BOOK表中該圖書(shū)(對(duì)應(yīng)ISBN)記錄的庫(kù)存量減1。存儲(chǔ)過(guò)程終止,將輸出參數(shù)賦值為“借書(shū)成功〞并返回1,表示借書(shū)成功。
(8)假使存儲(chǔ)過(guò)程執(zhí)行過(guò)程中遇到錯(cuò)誤,則回滾之前進(jìn)行的操作,并將輸出參數(shù)賦值為“執(zhí)行過(guò)程中遇到錯(cuò)誤〞并返回0,表示存儲(chǔ)過(guò)程執(zhí)行過(guò)程中遇到錯(cuò)誤,回滾到執(zhí)行存儲(chǔ)過(guò)程前的狀態(tài)。?實(shí)現(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借書(shū)證號(hào)=in_ReaderID;
IFCt_Reader5THENBEGIN
out_str:='讀者借書(shū)量不能大于5';Error_Numer:=1;END;ENDIF;
SELECT庫(kù)存量intoCt_StoreFROMBOOKWHEREISBN=in_ISBN;IFCt_Store=0THENBEGIN
out_str:='圖書(shū)庫(kù)存量為0';Error_Numer:=1;END;ENDIF;
SELECTcount(*)intoCt_HaveReadFROMJYWHERE借書(shū)證號(hào)=in_ReaderIDandISBN=in_ISBN;IFCt_HaveRead>0THenBEGIN
out_str:='讀者已經(jīng)借過(guò)該書(shū)';
Error_Numer:=1;END;ENDIF;
SELECTcount(*)intoCt_BookIDFROMJYWHERE索書(shū)號(hào)=in_BookID;IFCt_BookID>0THENBEGIN
out_str:='索書(shū)號(hào)已存在';Error_Numer:=1;END;ENDIF;
IFError_Numer=0THEN
INSERTINTOJYVALUES(in_ReaderID,in_ISBN,in_BookID,sysdate);UPDATEXSSET借書(shū)量=借書(shū)量+1WHERE借書(shū)證號(hào)=in_ReaderID;UPDATEBOOKSET庫(kù)存量=庫(kù)存量-1WHEREISBN=in_ISBN;out_str:='借書(shū)成功';IFSQL%NOTFOUNDTHENRAISEno_result;ENDIF;COMMIT;
dbms_outpu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐廳服務(wù)質(zhì)量提升-個(gè)性化服務(wù)與培訓(xùn)趨勢(shì)
- 小學(xué)生心理健康教育實(shí)施方案
- 山東省 膠州市2024~2025學(xué)年 七年級(jí)上學(xué)期 第一次月考英語(yǔ)試卷(無(wú)答案)
- 《帶著誠(chéng)信考試 力爭(zhēng)理想成績(jī)》期中考試誠(chéng)信教育及心理調(diào)適指導(dǎo)班會(huì)課件
- 2024至2030年中國(guó)號(hào)碼隨意組合式導(dǎo)線標(biāo)志燙印機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國(guó)側(cè)邊鎖頭數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 新疆2017年中考化學(xué)真題(含答案)
- 集團(tuán)客戶(hù)策略
- 2024年中國(guó)圓錐破市場(chǎng)調(diào)查研究報(bào)告
- ASME標(biāo)準(zhǔn)講解4ASME具體材料
- 五年級(jí)上冊(cè)英語(yǔ)課件-Unit1 What's he like Part B |人教(PEP) (共17張PPT)
- 眼、淋巴結(jié)體格檢查考核評(píng)分標(biāo)準(zhǔn)
- 肌電圖震顫分析檢測(cè)對(duì)帕金森病的診斷價(jià)值
- 船舶救生與消防培訓(xùn)課件
- DB31T 1249-2020 醫(yī)療廢物衛(wèi)生管理規(guī)范
- 中國(guó)建筑史說(shuō)課市公開(kāi)課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件
- 3D-one熊貓的制作方法課件
- 人教版七年級(jí)上冊(cè)數(shù)學(xué)一元一次方程的應(yīng)用-古代數(shù)學(xué)問(wèn)題
- 多發(fā)傷復(fù)合傷病人急診搶救流程圖
- 床單元消毒機(jī)-課件
- 硫酸鎂使用課件
評(píng)論
0/150
提交評(píng)論