數(shù)據(jù)庫開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告認(rèn)識Oracle常用管理工具和DDL、DML實(shí)踐_第1頁
數(shù)據(jù)庫開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告認(rèn)識Oracle常用管理工具和DDL、DML實(shí)踐_第2頁
數(shù)據(jù)庫開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告認(rèn)識Oracle常用管理工具和DDL、DML實(shí)踐_第3頁
數(shù)據(jù)庫開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告認(rèn)識Oracle常用管理工具和DDL、DML實(shí)踐_第4頁
數(shù)據(jù)庫開發(fā)技術(shù)實(shí)驗(yàn)報(bào)告認(rèn)識Oracle常用管理工具和DDL、DML實(shí)踐_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、福建工程學(xué)院信息科學(xué)與工程學(xué)院實(shí)驗(yàn)報(bào)告 2013 2014 學(xué)年第 1 學(xué)期 任課老師: 蔣建輝 課程名稱 數(shù)據(jù)庫開發(fā)技術(shù)班級座號姓名實(shí)驗(yàn)題目認(rèn)識oracle常用管理工具和ddl、dml實(shí)踐實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)開始日期: 2013.10. 12 報(bào)告提交日期: 2013.10.16 實(shí)驗(yàn)?zāi)康?、要求?shí)驗(yàn)?zāi)康模? 認(rèn)識并熟悉oracle常用的管理工具:sql plus、isql plus、sql developter和em。2 掌握oracle表的數(shù)據(jù)定義(ddl)語言,實(shí)現(xiàn)表的定義、刪除與修改。3 掌握創(chuàng)建oracle表各種約束的方式和方法。4 掌握利用數(shù)據(jù)字典視圖查看各種有用信息的方法。5 掌握插入、

2、刪除和更新表中數(shù)據(jù)的方法。6 掌握控制事務(wù)的方法。7 掌握where子句中條件表達(dá)式的使用方法。8 掌握訪問替換變量的方法。9 學(xué)會創(chuàng)建并執(zhí)行一個(gè)腳本文件。10 掌握case 結(jié)構(gòu)的使用方法。實(shí)驗(yàn)設(shè)計(jì)內(nèi)容及實(shí)現(xiàn)步驟實(shí)驗(yàn)內(nèi)容和要求1. *登錄到sql plus、isql plus、sql developter和em,認(rèn)識并運(yùn)用這些常用的oracle管理工具。2. ddl實(shí)踐(1) oracle表的ddl實(shí)踐。設(shè)有如下關(guān)系表s_班名座號(如:s_wg100103): s_wg100103 (sno, sname, ssex, sage, sdept),主關(guān)鍵字是sno。其中sno為學(xué)號,numbe

3、r(5),學(xué)號不能為空,值是惟一的;sname為姓名,varchar2(20);ssex為性別,char(2);sage為年齡,number(2); sdept為所在系名,varchar2(10)。寫出實(shí)現(xiàn)下列功能的sql語句。1) 創(chuàng)建此表并插入數(shù)據(jù);create table s_ji3110307207( sno number(5) primary key not null, sname varchar2(20), ssex char(2), sage number(2), sdept varchar2(10)insert into s values(95001,李明勇,男,20,cs);

4、insert into s values(95002,劉晨,女,19,is);insert into s values(95003,王名,女,18,ma);insert into s values(95004,張立,男,19,cs);insert into s values(95005,張軍,男,21,ma);insert into s values(95006,王張鳳,女,19,fl);insert into s values(95011,王敬,女,18,is);insert into s values(95021,張名惠,男,19,fl);2) 查看此表的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù);3) 根據(jù)此表再復(fù)

5、制創(chuàng)建一個(gè)只有is系學(xué)生組成的新表s_is_班名座號;create table s_is_ji3110307207as select * from s_ji3110307207where sdept=is4) 向s表添加“入學(xué)時(shí)間(comedate)”列,其數(shù)據(jù)類型為日期型(date);alter table s_ji3110307207 add comedate date5) 將年齡的數(shù)據(jù)類型改為number(3)且默認(rèn)值為19,并查看這些修改后的表結(jié)構(gòu);列無數(shù)據(jù)的情況下直接修改:alter table s_ji3110307207 modify sage munber(3),default

6、(19)列有數(shù)據(jù)的情況下:新建一列alter table s_ji3110307207 add newsage number(3) default(19)舊列數(shù)據(jù)復(fù)制新列中update s_ji3110307207 set newsage=cast (sage as number(3);刪除舊列alter table s_ji3110307207 drop column sage;重新命名新列alter table s_ji3110307207 rename column newsage to sage;6) 刪除新添加的列,查看更改情況;alter table s_ji3110307207

7、drop column comedate7) 將表s改名為student;alter table s_ji3110307207 rename to student_31103072078) 為表s添加注釋學(xué)生信息表comment on table student_3110307207 is 學(xué)生信息表讀取注釋:select * from user_tab_comments where comments is not null9) 截?cái)鄐表;truncate table s_ji311030720710) 刪除生成的新表s_is_班名座號;truncate和delete只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(

8、定義)drop語句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger),索引(index);依賴于該表的存儲過程drop table s_is_ji3110307207(2) 創(chuàng)建約束要求按普遍采用的約定為這些約束命名,約束創(chuàng)建后要進(jìn)行約束測試。(參見所附的表結(jié)構(gòu)和數(shù)據(jù),表名要加上班名座號)create table course_ji3110307207( cno number(4) , cname varchar2(30), cpno number(4), ccredit number(2), climit number(4)1) 為course表添加一個(gè)主鍵約束;al

9、ter table course_ji3110307207 add constraint pk_cno primary key(cno)查看此表的約束:select * from user_constraints where table_name=course_ji31103072072) 創(chuàng)建sc表的主鍵約束和外鍵約束(一個(gè)列級和一個(gè)表級),表級的外鍵約束要求允許使用級聯(lián)刪除選項(xiàng);alter table course_ji3110307207 add constraint pk_cno primary key(cno)select * from user_constraints where

10、table_name=scalter table sc add constraint sno_cno_fk foreign key(sno,cno) references s_ji3110307207(sno) and course_ji3110307207(cno)ora-02256: 要引用的列數(shù)必須與已引用列數(shù)匹配?3) 為s表的ssex創(chuàng)建check約束;alter table s_ji3110307207 add constraint ssex_chk check(ssex in(男,女)select * from user_constraints where table_name=

11、s_ji31103072074)為s表創(chuàng)建一個(gè)合適的not null和unique惟一性約束;姓名為非空:select * from user_constraints where table_name = s_ji3110307207學(xué)號是唯一的: alter table s_ji3110307207 add constraint sno_unique unique(sno)建表時(shí)已經(jīng)將sno設(shè)為主鍵了,然后就添加不進(jìn)去了;ora-02261: 表中已存在這樣的唯一關(guān)鍵字或主鍵;然后查約束條件的時(shí)候又沒有看到?5) 在上題基礎(chǔ)上,刪除其中一個(gè)約束,啟用/禁用其中一個(gè)約束,并測試之。 alter

12、 table s_ji3110307207 drop constraint ssex_chk alter table s_ji3110307207 disable constraint sys_c005176alter table s_ji3110307207 enable constraint sys_c005176(3) 使用數(shù)據(jù)字典視圖利用任意3種數(shù)據(jù)字典視圖查看數(shù)據(jù)庫對象的信息,如查看表、表空間信息和約束信息等。查看用戶下所有的表:select * from user_tables顯示用戶信息所屬的表空間:select default_tablespace,temporary_tabl

13、espace from dba_users查詢約束信息:select * from user_constraints 3. dml實(shí)踐(1) oracle表的dml操作。1) 7369號雇員加薪10%。update empset sal=sal*1.1where empno=73692) *從部門表(dept)中刪除部門30,如果刪除不成功,那么寫出你自己的建議,說明應(yīng)該怎么做。應(yīng)該把30號部門的員工信息刪除,因?yàn)椴块T表的部門編號作為了員工表的外鍵3) 向emp表中插入一個(gè)新雇員。insert into emp values(7950,qsl,manager ,7839,to_date(21-

14、08-2003,dd-mm-yyyy), 4000.00, null, 10)(2) 數(shù)據(jù)檢索。1) *顯示emp表中月薪$2850的雇員的姓名和薪資。select ename,sal from empwhere sal28502) *顯示雇員號為7566的員工的姓名和部門號。select ename,deptno from empwhere empno=75663) 顯示受雇日期在20-2月-1981與1-5月-1981之間的員工的姓名、工種和受雇日期,要求以受雇日期升序排列。select ename ,job,hiredate from empwhere hiredate between

15、20-2月-1981 and 1-5月-1981order by hiredate4) *顯示部門號為10、30的員工的姓名和部門號,要求以姓名序排列。select ename,deptno from empwhere deptno in (10,30)order by ename5) 顯示emp表中所有崗位(job)的類型。select distinct job from emp6) 顯示沒有上司員工的姓名和工種。select ename ,job from empwhere mgr is null7) 顯示部門號為10、30且月薪$1500的所有員工的姓名和月薪,要求顯示列名為 “empl

16、oyee”和“monthly salary”。select ename employee,sal monthlysalary from empwhere deptno in (10,30) andsal1500 8) 顯示哪些姓名中含有字母”a”并且部門號為30的員工或者上司號為7782的員工姓名。select ename from emp where ename like %a% and deptno=30 or mgr=77829) *在查詢emp表中使用連接操作符和原義字符串。查詢結(jié)果類同以下:select ename | is a |jobfrom emp雇員和職務(wù)表-smith is

17、 a clerk待添加的隱藏文字內(nèi)容3allen is a salesmanward is a salesmanjones is a managermartin is a salesman.10) *顯示哪些掙了傭金(comm)的員工的姓名、月薪和傭金,要求顯示結(jié)果按月薪降序,月薪相同再按傭金降序。降序:select sal from emp order by sal desc升序:select sal from emp order by sal select ename,sal,comm from empwhere comm is not nullorder by sal desc,comm

18、 desc(3) 事務(wù)控制、替代變量、case 結(jié)構(gòu)1) *請為用戶創(chuàng)建一個(gè)定制提示符,提示用戶為deptno列輸入5099之間的一個(gè)值2) *學(xué)習(xí)使用commit、rollback和savepoint等事務(wù)控制語句。3) *學(xué)會創(chuàng)建并執(zhí)行一個(gè)腳本文件。4) *觀察數(shù)據(jù)的讀一致性。(提示:用兩個(gè)不同的連接來觀察,另一個(gè)連接比如可以用scott的身份連接)5) 顯示符合任意條件的雇員的編號以及其它任意的列6) 將case結(jié)構(gòu)用于update語句?;诠蛦T的job值來更新job值。 manager更新為管理人員,president更新為總經(jīng)理,其余的更新為普通人員。update empset jo

19、b=case when job=manager then管理人員when job=president then總經(jīng)理else 普通人員 end empno ename job mgr hiredate sal comm deptno- - - - - - - - 7369 smith 普通人員 7902 17-12月-80 800 20 7499 allen 普通人員 7698 20-2月 -81 1600 300 30 7521 ward 普通人員 7698 22-2月 -81 1250 500 30 7566 jones 管理人員 7839 02-4月 -81 2975 20 7654 m

20、artin 普通人員 7698 28-9月 -81 1250 1400 30 7698 blake 管理人員 7839 01-5月 -81 2850 30 7782 clark 管理人員 7839 09-6月 -81 2450 10 7788 scott 普通人員 7566 13-7月 -87 3000 20 7839 king 總經(jīng)理 17-11月-81 5000 10 已選擇14行。一、 *附加題查詢emp表中10號部門的員工平均工資,如果參加平均的員工工資低于2000就以2000作為最低可能的工資參加平均。指出你使用的case結(jié)構(gòu)是簡單case表達(dá)式(simple case expres

21、sion )還是搜索式case表達(dá)式(searched case expression)。二、 實(shí)驗(yàn)報(bào)告根據(jù)以上實(shí)驗(yàn)內(nèi)容的要求認(rèn)真填寫實(shí)驗(yàn)報(bào)告,記錄所有的實(shí)現(xiàn)方法和運(yùn)行結(jié)果,并記錄實(shí)驗(yàn)過程中遇到的困難和解決問題的方法。(實(shí)驗(yàn)報(bào)告中不要求寫加*題目的實(shí)驗(yàn)過程和內(nèi)容)三、 附錄:create table course(cnonumber(4) cname varchar2(30),cpno number(4),ccreditnumber(2),climitnumber(4);create table sc(sno number(5),cnonumber(4), gradenumber(3,1);i

22、nsert into course values(1,數(shù)據(jù)庫,5,5,10);insert into course values(2,數(shù)學(xué),null,3.10);insert into course values(3,信息系統(tǒng),1,4,12);insert into course values(4,操作系統(tǒng),6,4,12);insert into course values(5,數(shù)據(jù)結(jié)構(gòu),7,5,16);insert into course values(6,數(shù)據(jù)處理,null,3,15);insert into course values(7,pascal語言,6,2,null);commit;insert into sc values(95001,5,92);insert into sc values(95002,3,80);insert into sc values(95001,1,58);inser

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論