




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、保定職業(yè)技術(shù)學(xué)院課程設(shè)計(jì)報(bào)告系計(jì)算機(jī)信息工程系專(zhuān)業(yè)軟件開(kāi)發(fā)班級(jí)0901姓名學(xué)號(hào)0401題目指導(dǎo)教師完成時(shí)間2010年12月12日指導(dǎo)教師情況姓名技術(shù)職稱單位指導(dǎo)教師評(píng)語(yǔ):成績(jī):指導(dǎo)教師簽字:年 月 日內(nèi)容摘要1第一章 緒論2第二章 功能實(shí)現(xiàn)2實(shí)訓(xùn)七:pl/sql編程2實(shí)訓(xùn)八:存儲(chǔ)過(guò)程和觸發(fā)器6實(shí)訓(xùn)九:序列、同義詞 、程序包11實(shí)訓(xùn)十:oracle數(shù)據(jù)庫(kù)安全管理14實(shí)訓(xùn)十一:數(shù)據(jù)庫(kù)的備份和恢復(fù)17后記21 內(nèi)容摘要oracle是當(dāng)今最大的數(shù)據(jù)庫(kù)公司oracle(甲骨文)的數(shù)據(jù)庫(kù)產(chǎn)品。它的前身是創(chuàng)建于1977年的,位于美國(guó)加州的relational software公司。該公司與1979年推出了世
2、界上第一個(gè)基于sql標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)oracle 1 ,同年又推出產(chǎn)品oracle 2它采用標(biāo)準(zhǔn)的sql(結(jié)構(gòu)化查詢語(yǔ)言),支持多種數(shù)據(jù)類(lèi)型,并面向?qū)ο?。支持unix、linux、window nt/2000、os/2等操作系統(tǒng)平臺(tái),支持客戶機(jī)/服務(wù)器工作模式和web工作模式。數(shù)據(jù)庫(kù)是存放數(shù)據(jù)、表、視圖、存儲(chǔ)過(guò)程等數(shù)據(jù)庫(kù)對(duì)象的容器。因此,操作數(shù)據(jù)庫(kù)對(duì)象應(yīng)先從操作數(shù)據(jù)庫(kù)開(kāi)始。本章介紹數(shù)據(jù)庫(kù)操作的基本知識(shí),包括數(shù)據(jù)庫(kù)的創(chuàng)建、查看、修改、分離、附加和刪除等操作。關(guān)鍵字:存儲(chǔ)過(guò)程 觸發(fā)器 視圖 游標(biāo)第一章 緒論oracle是目前最流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),被越來(lái)越多的用戶在信息系統(tǒng)管理、企業(yè)數(shù)
3、據(jù)處理、internet、電子商務(wù)網(wǎng)站等領(lǐng)域作為應(yīng)用數(shù)據(jù)的后臺(tái)處理系統(tǒng)。oracle從基本概念和實(shí)際應(yīng)用出發(fā),由淺入深、循序漸進(jìn)地講述oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí),數(shù)據(jù)庫(kù)創(chuàng)建,表的操作,數(shù)據(jù)查詢及pl/sql編程技術(shù),索引和視圖的應(yīng)用,存儲(chǔ)過(guò)程和觸發(fā)器的應(yīng)用,數(shù)據(jù)庫(kù)安全管理,備份與恢復(fù)等內(nèi)容。oracle系統(tǒng)為數(shù)據(jù)庫(kù)管理員提供了多種工具來(lái)完成數(shù)據(jù)庫(kù)的管理工作,既可以使用命令行為創(chuàng)建和刪除數(shù)據(jù)庫(kù),也可以通過(guò)數(shù)據(jù)庫(kù)配置助手dbca工具來(lái)創(chuàng)建和刪除數(shù)據(jù)庫(kù)。前者適合專(zhuān)業(yè)人員使用;后者提供圖形化界面,具有操作導(dǎo)航功能。第二章 功能實(shí)現(xiàn)實(shí)訓(xùn)七:pl/sql編程1、創(chuàng)建函數(shù)“get_total_num”,根據(jù)
4、專(zhuān)業(yè)代碼統(tǒng)計(jì)本專(zhuān)業(yè)的總?cè)藬?shù)。創(chuàng)建函數(shù)“get_num_percent”,根據(jù)不同班級(jí),顯示該班級(jí)學(xué)生人數(shù)在本專(zhuān)業(yè)學(xué)生總?cè)藬?shù)中的比例。創(chuàng)建函數(shù)“get_total_num”create or replace function get_total_num(v_專(zhuān)業(yè)代碼 班級(jí)表.專(zhuān)業(yè)代碼%type)return numberas v_總?cè)藬?shù) 班級(jí)表.班級(jí)人數(shù)%type;begin select sum(班級(jí)人數(shù)) into v_總?cè)藬?shù) from 班級(jí)表 where 專(zhuān)業(yè)代碼=v_專(zhuān)業(yè)代碼; return v_總?cè)藬?shù);end get_total_num;創(chuàng)建函數(shù)“get_num_percent”cre
5、ate or replace function get_num_percent(v_班級(jí)名稱 班級(jí)表.班級(jí)名稱%type)return numberas v_班級(jí)人數(shù) 班級(jí)表.班級(jí)人數(shù)%type; v_總?cè)藬?shù) 班級(jí)表.班級(jí)人數(shù)%type; v_專(zhuān)業(yè)代碼 班級(jí)表.專(zhuān)業(yè)代碼%type; v_percent number;begin select sum(班級(jí)人數(shù)),專(zhuān)業(yè)代碼 into v_班級(jí)人數(shù),v_專(zhuān)業(yè)代碼 from 班級(jí)表 where 班級(jí)名稱=v_班級(jí)名稱; select sum(班級(jí)人數(shù)) into v_總?cè)藬?shù) from 班級(jí)表 where 專(zhuān)業(yè)代碼=v_專(zhuān)業(yè)代碼; v_percent:
6、=v_班級(jí)人數(shù)/v_總?cè)藬?shù); return v_percent;end get_num_percent;2、使用游標(biāo)調(diào)用get_num_percent函數(shù).declare cursor c_班級(jí) is select 班級(jí)名稱 from 班級(jí)表 order by 班級(jí)代碼; v_percent number(9,2); v_班級(jí)名稱 班級(jí)表.班級(jí)名稱%type;begin open c_班級(jí); loop fetch c_班級(jí) into v_班級(jí)名稱; exit when c_班級(jí)%notfound; v_percent:=get_num_percent(v_班級(jí)名稱); dbms_output.
7、put_line(v_班級(jí)名稱|人數(shù)占本專(zhuān)業(yè)人數(shù)的比例為:|v_percent);end loop;close c_班級(jí);end;(該功能未實(shí)現(xiàn))3、使用游標(biāo)調(diào)用get_total_num函數(shù).declarecursor c_系部 is select * from 系部表 order by 系部代碼;cursor c_專(zhuān)業(yè)(v_系部代碼 系部表.系部代碼%type) is select 專(zhuān)業(yè)名稱,專(zhuān)業(yè)代碼 from 專(zhuān)業(yè)表 where 系部代碼=v_系部代碼 order by 專(zhuān)業(yè)代碼;v_系部 系部表%rowtype;v_專(zhuān)業(yè)人數(shù) 班級(jí)表.班級(jí)人數(shù)%type;v_總?cè)藬?shù) 班級(jí)表.班級(jí)人數(shù)%t
8、ype;v_專(zhuān)業(yè)名稱 專(zhuān)業(yè)表.專(zhuān)業(yè)名稱%type;v_專(zhuān)業(yè)代碼 專(zhuān)業(yè)表.專(zhuān)業(yè)代碼%type;beginopen c_系部;loopfetch c_系部 into v_系部;exit when c_系部%notfound;dbms_output.put_line(系部:|v_系部.系部名稱);v_總?cè)藬?shù):=0;open c_專(zhuān)業(yè)(v_系部.系部代碼);loopfetch c_專(zhuān)業(yè) into v_專(zhuān)業(yè)名稱,v_專(zhuān)業(yè)代碼;exit when c_專(zhuān)業(yè)%notfound;v_專(zhuān)業(yè)人數(shù):=get_total_num(v_專(zhuān)業(yè)代碼);dbms_output.put_line(v_專(zhuān)業(yè)名稱|專(zhuān)業(yè)總?cè)藬?shù)為:|
9、v_專(zhuān)業(yè)人數(shù));v_總?cè)藬?shù):=v_總?cè)藬?shù)+v_專(zhuān)業(yè)人數(shù);end loop;close c_專(zhuān)業(yè);dbms_output.put_line(總?cè)藬?shù)為:|v_總?cè)藬?shù));end loop;close c_系部;end;實(shí)訓(xùn)八:存儲(chǔ)過(guò)程和觸發(fā)器1、在數(shù)據(jù)庫(kù)中創(chuàng)建“xs_proc”存儲(chǔ)過(guò)程,按輸入的學(xué)號(hào)查詢相應(yīng)的學(xué)生姓名和班級(jí)信息,如果沒(méi)有該學(xué)生,進(jìn)行異常處理。創(chuàng)建完成后,執(zhí)行該存儲(chǔ)過(guò)程。創(chuàng)建“xs_proc”存儲(chǔ)過(guò)程create or replace procedure xs_proc(xh in 學(xué)生表.學(xué)號(hào)%type, xm out 學(xué)生表.姓名%type, bjdm out 學(xué)生表.班級(jí)代碼%t
10、ype)asbeginselect 姓名,班級(jí)代碼 into xm,bjdm from 學(xué)生表where 學(xué)號(hào)=xh;dbms_output.put_line(姓名:|xm);dbms_output.put_line(班級(jí)代碼:|bjdm);exceptionwhen no_data_found then dbms_output.put_line(不存在該學(xué)生!|xh);end;執(zhí)行xs_proc存儲(chǔ)過(guò)程declare v_xm varchar2(10);v_bjdm varchar2(20);beginxs_proc(060101001001,v_xm,v_bjdm);end;2、創(chuàng)建教師副
11、表,用來(lái)存放從教師表中刪除的數(shù)據(jù)記錄.創(chuàng)建觸發(fā)器trig_del_js,實(shí)現(xiàn)該功能.創(chuàng)建教師副表 create table 教師副表(教師編號(hào) varchar2(20 byte) not null, 教師姓名 varchar2 (10 byte) not null, 性別 varchar2(10 byte) not null, 出生日期 date, 學(xué)歷 varchar2(20 byte) not null, 職稱 varchar2(10 byte) not null, 系部代碼 varchar2(10 byte) not null, 備注 varchar2(30 byte) );創(chuàng)建觸發(fā)器t
12、rig_del_jscreate trigger trig_del_jsafter delete on 教師表for each rowbegininsert into 教師副表values(:old.教師編號(hào),:old.教師姓名,:old.性別,:old.出生日期,:old.學(xué)歷,:old.職稱,:old.系部代碼,:old.備注);end del_xs;delete 教師表 where 教師姓名=劉輝;創(chuàng)建觸發(fā)器,使得對(duì)“教師表”的插入、刪除、更新操作可以出發(fā)對(duì)“教師任課表”的插入、刪除、更新。創(chuàng)建觸發(fā)器“tri_stu_ins”create or replace trigger trig_
13、js_insbefore insert on 教師表for each rowbegininsert into 教師任課表(教師編號(hào))values(:new.教師編號(hào));end;insert into 教師表(教師編號(hào),教師姓名,性別,出生日期,學(xué)歷,職稱,系部代碼,備注)values (040000000006,張強(qiáng),女,03-2月-1972,本科,講師,04,);創(chuàng)建觸發(fā)器“tri_stu_del”create or replace trigger trig_js_delbefore delete on 教師表for each rowbegindelete 教師任課表 where 教師編號(hào)=
14、:old.教師編號(hào);end;delete 教師表 where 教師姓名=張強(qiáng);創(chuàng)建觸發(fā)器“tri_stu_upd”create or replace trigger trig_js_updbefore update on 教師表for each rowbeginupdate 教師任課表 set 教師編號(hào)=:old.教師編號(hào);end;update 教師表set 教師姓名=劉海軍where 教師編號(hào)=010000002;實(shí)訓(xùn)九:序列、同義詞 、程序包1.創(chuàng)建程序包 將統(tǒng)計(jì)學(xué)生表中不同性別的人數(shù)的函數(shù)和過(guò)程寫(xiě)到包中(1)以system用戶登錄數(shù)據(jù)庫(kù)(2)創(chuàng)建程序包頭 stud_packagecrea
15、te or replace package stud_packageasfunction f_count(in_zhic in 教師表.職稱%type) return number;procedure p_count(in_zhic in 教師表.職稱%type,out_num out number);end stud_package;(3)創(chuàng)建程序包體create or replace package body stud_packageasfunction f_count(in_zhic in 教師表.職稱%type)return numberasout_num number;beginif
16、 in_zhic=講師 thenselect count(職稱) into out_numfrom 教師表where 職稱=講師;elseselect count(職稱) into out_numfrom 教師表where 職稱=副教授;end if;return(out_num);end;procedure p_count(in_zhic in 教師表.職稱%type,out_num out number)asbeginif in_zhic=講師 thenselect count(職稱) into out_numfrom 教師表where 職稱=講師;else select count(職稱
17、) into out_numfrom 教師表where 職稱=副教授;end if;dbms_output.put_line(in_zhic|人數(shù)為:|to_char(out_num);end;end stud_package;(4)調(diào)用程序包中的函數(shù),統(tǒng)計(jì)并輸出副教授的人數(shù)set serveroutput ondeclarewoman_num number;beginwoman_num:=stud_package.f_count(副教授);end;(具體結(jié)果為什么不顯示我沒(méi)找到原因,我認(rèn)為是function與procedure的區(qū)別)(5)調(diào)用程序包中的函數(shù),統(tǒng)計(jì)并輸出講師的人數(shù)set se
18、rveroutput ondeclareman_num number;beginstud_package.p_count(講師,man_num);end;實(shí)訓(xùn)十:oracle數(shù)據(jù)庫(kù)安全管理(1) 在“student”數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)用戶stu_user2,并為該用戶分配權(quán)限. 以system用戶登錄“student”數(shù)據(jù)庫(kù)conn system/aaa 創(chuàng)建用戶stu_user2,口令設(shè)置為:aaa,默認(rèn)表空間為system,臨時(shí)表空間為temp,對(duì)表空間沒(méi)有配額.代碼如下:create user stu_user2identified by aaadefault tablespace sy
19、stemtemporary tablespace tempquota unlimited on system;創(chuàng)建一個(gè)用戶概要文件stu_profile,其中資源及口令管理參數(shù)設(shè)置如下:該用戶最多可以建立5個(gè)并發(fā)的回話連接.連接的最大空閑時(shí)間為10分鐘.允許用戶連接登錄數(shù)據(jù)庫(kù)失敗次數(shù)為3.如果用戶帳戶被鎖定,設(shè)置被鎖定的天數(shù)為20.create profile stu_profile limitsessions_per_user 5idle_time 10failed_login_attempts 3password_lock_time 20;將stu_proflie概要文件分配給用戶stu_
20、user2.代碼如下:alter user stu_user2 profile stu_profile;授予用戶stu_user2連接數(shù)據(jù)庫(kù)的系統(tǒng)權(quán)限.代碼如下:grant create session to stu_user2;將對(duì)象system成績(jī)表的select權(quán)限授予用戶stu_user2.代碼如下grant select on system.成績(jī)表 to stu_user2;以用戶stu_user2登錄,查詢system.成績(jī)表.代碼如下:conn stu_use2/aaa;select * from system.成績(jī)表;實(shí)訓(xùn)十一:數(shù)據(jù)庫(kù)的備份和恢復(fù)1使用expdp命令導(dǎo)出表:使用
21、expdp命令導(dǎo)出system方案的學(xué)生表和班級(jí)表(1)在sql*plus環(huán)境下,建立轉(zhuǎn)儲(chǔ)文件目錄,給用戶授權(quán).代碼如下:conn system/aaa;create directory dump_dir1 as e:dump;grant read,write on directory dump_dir1 to scott;啟動(dòng)dos命令,進(jìn)入命令提示符下.導(dǎo)出學(xué)生表和班級(jí)表,轉(zhuǎn)儲(chǔ)文件名為table1.dmp,日志文件名為table1.log。代碼如下:expdp system/aaa directory=dump_dir_dir dumpfile=talbe,dmp tables=學(xué)生表.班
22、級(jí)表logfile=tablog1.log;使用expdp命令導(dǎo)出數(shù)據(jù)庫(kù).使用expdp命令導(dǎo)出當(dāng)前使用的數(shù)據(jù)庫(kù)student,轉(zhuǎn)儲(chǔ)文件名為student1.dmp.閃回設(shè)置:以命令方式連接數(shù)據(jù)庫(kù)。代碼如下:conn system/aaa as sysdba;查看當(dāng)前數(shù)據(jù)庫(kù)連接狀態(tài)是否為“archivelog”模式。代碼如下:select dbid,name,log_mode from v$database;如果為“noarchivelog”模式,則應(yīng)該關(guān)閉數(shù)據(jù)庫(kù)后,以“mount”方式打開(kāi)數(shù)據(jù)庫(kù),改變當(dāng)前模式。代碼如下:shutdown immediate;startup mount;alter database archivelog;啟用fashb
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 彩鋼房基礎(chǔ)防水施工方案
- 裝配式預(yù)留預(yù)埋施工方案
- 玻璃鋼除塵凈化塔施工方案
- 合盛包裝科技(徐州)有限公司玻璃瓶包裝裝潢及配套件加工項(xiàng)目環(huán)境影響報(bào)告表
- 保亭縣大件垃圾及園林垃圾破碎分揀及建筑垃圾轉(zhuǎn)運(yùn)調(diào)配場(chǎng)項(xiàng)目環(huán)評(píng)報(bào)告表
- 超高速切削機(jī)床項(xiàng)目風(fēng)險(xiǎn)識(shí)別與評(píng)估綜合報(bào)告
- 陽(yáng)泉直埋式保溫管施工方案
- 場(chǎng)地平整及強(qiáng)夯施工方案
- 施工方案編制格式
- 湖北省黃岡市部分學(xué)校2024-2025學(xué)年九年級(jí)下學(xué)期入學(xué)化學(xué)試題(原卷版+解析版)
- 15J403-1-樓梯欄桿欄板(一)
- DL∕T 5210.4-2018 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第4部分:熱工儀表及控制裝置
- 水利水電工程單元工程施工質(zhì)量驗(yàn)收評(píng)定表及填表說(shuō)明
- MOOC 數(shù)據(jù)庫(kù)系統(tǒng)(上):模型與語(yǔ)言-哈爾濱工業(yè)大學(xué) 中國(guó)大學(xué)慕課答案
- 08SS523建筑小區(qū)塑料排水檢查井
- 1-5《鳳仙花開(kāi)花了》課件
- 新產(chǎn)品開(kāi)發(fā)進(jìn)度表
- 級(jí)配碎石底基層試驗(yàn)段施工方案
- 十幾減9、8、7、6的口算
- 購(gòu)房合同[標(biāo)準(zhǔn)版]
- 基于PLC的煤礦水泵控制系統(tǒng)設(shè)計(jì)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論