![數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告-5_第1頁(yè)](http://file4.renrendoc.com/view/8531f13a85a20afac7369266e45d8e1c/8531f13a85a20afac7369266e45d8e1c1.gif)
![數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告-5_第2頁(yè)](http://file4.renrendoc.com/view/8531f13a85a20afac7369266e45d8e1c/8531f13a85a20afac7369266e45d8e1c2.gif)
![數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告-5_第3頁(yè)](http://file4.renrendoc.com/view/8531f13a85a20afac7369266e45d8e1c/8531f13a85a20afac7369266e45d8e1c3.gif)
![數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告-5_第4頁(yè)](http://file4.renrendoc.com/view/8531f13a85a20afac7369266e45d8e1c/8531f13a85a20afac7369266e45d8e1c4.gif)
![數(shù)據(jù)庫(kù)實(shí)驗(yàn)報(bào)告-5_第5頁(yè)](http://file4.renrendoc.com/view/8531f13a85a20afac7369266e45d8e1c/8531f13a85a20afac7369266e45d8e1c5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《數(shù)據(jù)庫(kù)概論》實(shí)驗(yàn)1/15安徽工業(yè)大學(xué)數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)姓名:束豪學(xué)號(hào):119094277班級(jí):息111班專(zhuān)業(yè):信息管理與信息系統(tǒng)
《ORACLE數(shù)據(jù)庫(kù)》實(shí)驗(yàn)指導(dǎo)書(shū)(馬鋼班)一、實(shí)驗(yàn)?zāi)康模簲?shù)據(jù)庫(kù)系統(tǒng)是一門(mén)應(yīng)用性很強(qiáng)的課程,上機(jī)實(shí)驗(yàn)是數(shù)據(jù)庫(kù)課程的重要環(huán)節(jié)。本實(shí)驗(yàn)是結(jié)合《數(shù)據(jù)庫(kù)概論》課程的學(xué)習(xí)而開(kāi)設(shè)的實(shí)驗(yàn)。本實(shí)驗(yàn)?zāi)康娜缦拢?.通過(guò)上機(jī)實(shí)驗(yàn),加深對(duì)數(shù)據(jù)庫(kù)系統(tǒng)理論知識(shí)的理解,增強(qiáng)對(duì)網(wǎng)絡(luò)環(huán)境下大型數(shù)據(jù)庫(kù)的感性認(rèn)識(shí)和實(shí)際操作能力;2.通過(guò)使用具體的DBMS,了解一種實(shí)際的數(shù)據(jù)庫(kù)管理系統(tǒng),并掌握其操作技術(shù)。熟悉ORACLE數(shù)據(jù)庫(kù)的Net8工具,掌握ORACLE數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)連接配置;3.學(xué)習(xí)使用SQL語(yǔ)言,加深對(duì)SQL語(yǔ)言的認(rèn)識(shí)和理解,提高SQL語(yǔ)言的實(shí)際應(yīng)用能力;4.加強(qiáng)對(duì)事務(wù)處理、權(quán)限管理等概念的認(rèn)識(shí)和理解。二、適應(yīng)專(zhuān)業(yè):信息管理與信息系統(tǒng),信息與計(jì)算機(jī)科學(xué)三、實(shí)驗(yàn)學(xué)時(shí)數(shù):8學(xué)時(shí)四、實(shí)驗(yàn)內(nèi)容及學(xué)時(shí)安排:實(shí)驗(yàn)準(zhǔn)備:安裝ORACLE客戶端,配置與主機(jī)的數(shù)據(jù)庫(kù)連接。安裝軟件工具PLSQL/DEVELOPER實(shí)驗(yàn)一:數(shù)據(jù)定義/數(shù)據(jù)操縱語(yǔ)言實(shí)驗(yàn)?zāi)康模菏煜racle上機(jī)環(huán)境以及Oracle客戶端的配置;熟練掌握和使用DDL語(yǔ)言,建立、修改和刪除數(shù)據(jù)庫(kù)表、主鍵、外鍵約束關(guān)系和索引;熟練掌握和使用DML語(yǔ)言,對(duì)數(shù)據(jù)進(jìn)行增加、修改和刪除操作。學(xué)時(shí)數(shù):4學(xué)時(shí)實(shí)驗(yàn)內(nèi)容:SQL數(shù)據(jù)定義語(yǔ)句,SQL數(shù)據(jù)操縱語(yǔ)句。實(shí)驗(yàn)要求:1.熟悉Oracle上機(jī)環(huán)境;
2.建立數(shù)據(jù)庫(kù)表,修改數(shù)據(jù)庫(kù)表結(jié)構(gòu),建立、刪除索引;
3.對(duì)數(shù)據(jù)庫(kù)表進(jìn)行插入、修改和刪除數(shù)據(jù)的操作。實(shí)驗(yàn)二:數(shù)據(jù)查詢語(yǔ)言,視圖定義實(shí)驗(yàn)?zāi)康模后w會(huì)SQL語(yǔ)言數(shù)據(jù)查詢功能的豐富和復(fù)雜,視圖使用。學(xué)時(shí)數(shù):4學(xué)時(shí)實(shí)驗(yàn)內(nèi)容:SQL數(shù)據(jù)查詢語(yǔ)句;實(shí)驗(yàn)要求:對(duì)數(shù)據(jù)庫(kù)表進(jìn)行各種查詢操作;五、教材及參考文獻(xiàn)1.《數(shù)據(jù)庫(kù)系統(tǒng)概論》(第三版)薩師煊等編著高等教育出版社2000.2
2.《ORACLE8.xForWindowsNT實(shí)用教程》翁正科等編著清華大學(xué)出版社1998.10六、實(shí)驗(yàn)環(huán)境實(shí)驗(yàn)要求如下環(huán)境服務(wù)器端:Windows2000NTServer;
ORACLE8.xDatabaseServerForWindowsWindows2000Server客戶端:Windows9x;Oracle8.xClient網(wǎng)絡(luò)協(xié)議:TCP/IP七、成績(jī)考核上機(jī)實(shí)驗(yàn)考核采取實(shí)驗(yàn)報(bào)告和上機(jī)抽查檢驗(yàn)相結(jié)合的方式。每次實(shí)驗(yàn)結(jié)束后都必須寫(xiě)出實(shí)驗(yàn)報(bào)告。八.實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)一:數(shù)據(jù)定義/數(shù)據(jù)操縱語(yǔ)言[實(shí)驗(yàn)日期]2013年12月23日單位:安徽工業(yè)大學(xué)管工學(xué)院姓名:束豪[實(shí)驗(yàn)?zāi)康腯熟悉Oracle上機(jī)環(huán)境以及Oracle客戶端的配置;熟練掌握和使用DDL語(yǔ)言,建立、修改和刪除數(shù)據(jù)庫(kù)表、主鍵、外鍵約束關(guān)系和索引;熟練掌握和使用DML語(yǔ)言,對(duì)數(shù)據(jù)進(jìn)行增加、修改和刪除操作。[實(shí)驗(yàn)內(nèi)容]Oracle上機(jī)環(huán)境以及Oracle客戶端的配置參見(jiàn)附錄。1.SQL數(shù)據(jù)定義語(yǔ)句:1:(建立數(shù)據(jù)庫(kù)表)建立教學(xué)數(shù)據(jù)庫(kù)的四個(gè)數(shù)據(jù)庫(kù)表,其中Student表中不包含SSEX(C,2)字段,Sname字段為Sname(C,8)且可為空。1.createtableStudent(
Snovarchar2(5)primarykey,
Snamevarchar2(8),
Sagenumber(2,0),
Sdeptvarchar2(2),
Sclassvarchar2(2)
);2.createtableCourse(
Cnovarchar2(3)primarykey,
Cnamevarchar2(16),
Ctimenumber(3)
);3.createtableTeacher(
Tnamevarchar2(8),
Tsexvarchar2(2),
Cnovarchar2(3),
TdateDate,
Tdeptvarchar2(2)
);4.createtableScore(
Snovarchar2(5),
Cnovarchar2(3),
Scorenumber(5,2)
);2:(修改數(shù)據(jù)庫(kù)表)在Student表中增加SSEX(C,2)字段。答:altertableStudentaddSsexvarchar2(2);例1-3:(修改數(shù)據(jù)庫(kù)表)將Student表中把Sname字段修改為Sname(C,10)且為非空。答:altertableStudentmodify(Snamevarchar2(10)notnull);例1-4:(建立索引)為Score表按學(xué)號(hào)升序和課程號(hào)降序分別建立索引,索引名分別為SC_NDXSNO和SC_NDXCNO。為Score表按分?jǐn)?shù)降序建立索引,索引名為GRADE_NDX。答:createindexSC_NDXSNOonScore(snodesc);createindexSC_NDXCNOonScore(cnodesc);createindexSC_gradeonScore(scoredesc);例1-5:(刪除索引)刪除索引SC_NDX_SNO。答:dropindexSC_NDX_SNO;例1-6:(建立數(shù)據(jù)庫(kù)表)建立數(shù)據(jù)庫(kù)表S1(SNO,SNAME,SD,SA),其字段類(lèi)型定義與Student表中的相應(yīng)字段(SNO,SNAME,SDEPT,SAGE)的數(shù)據(jù)類(lèi)型定義相同。答:createtableS1(
Snovarchar2(5)primarykey,
Snamevarchar2(10)notnull,
Sdeptvarchar2(2),
Sagenumber(2)
)例1-8:(修改數(shù)據(jù)庫(kù)表)添加成績(jī)表Score的參照完整性約束關(guān)系。答:altertablescoreaddconstraintsc_pkprimarykey(sno,cno);例1-7:(修改數(shù)據(jù)庫(kù)表)刪除成績(jī)表Score的參照完整性約束關(guān)系。答:altertablescoredropconstraintsc_pk;例1-7,8:為選作題2.SQL數(shù)據(jù)操縱語(yǔ)句:例2-1:(插入數(shù)據(jù))按前面各表中的部分?jǐn)?shù)據(jù)分別插入到教學(xué)數(shù)據(jù)庫(kù)的四個(gè)數(shù)據(jù)庫(kù)表中。學(xué)生表:insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('96001','馮曉燕','女','CS',21,'01');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('96002','黎明','男','CS',18,'01');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('96003','劉東明','男','MA',18,'01');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('96004','趙志勇','男','IS',20,'02');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('97001','馬蓉','女','MA',19,'02');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('97002','李成功','男','CS',20,'01');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('97003','黎明','男','IS',19,'03');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('97004','李麗','女','CS',19,'02');
insertintoStudent(Sno,Sname,Ssex,Sdept,Sage,Sclass)values('96005','司馬志明','男','CS',18,'02');Course表:insert
into
Course(Cno,Cname,Ctime)values
('001','數(shù)學(xué)分析',144);
insert
into
Course(Cno,Cname,Ctime)values
('002','普通物理',144);
insert
into
Course(Cno,Cname,Ctime)values
('003','微機(jī)原理',80);
insert
into
Course(Cno,Cname,Ctime)values
('004','數(shù)據(jù)結(jié)構(gòu)',72);
insert
into
Course(Cno,Cname,Ctime)values
('005','操作系統(tǒng)',80);
insert
into
Course(Cno,Cname,Ctime)values
('006','數(shù)據(jù)庫(kù)原理',80);
insert
into
Course(Cno,Cname,Ctime)values
('007','編譯原理',60);
insert
into
Course(Cno,Cname,Ctime)values
('008','程序設(shè)計(jì)',40);Teacher表:insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('王成剛','男','004',
to_date('1999-9-5','YYYY-MM-DD'),
'CS');
insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('李正科','男','003',
to_date('1999-9-5','YYYY-MM-DD'),
'CS');
insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('嚴(yán)敏','女','001',
to_date('1999-9-5','YYYY-MM-DD'),
'MA');
insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('趙高','男','004',
to_date('1999-9-5','YYYY-MM-DD'),
'IS');
insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('李正科','男','003',
to_date('2000-2-23','YYYY-MM-DD'),
'MA');
insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('劉玉蘭','女','006',
to_date('2000-2-23','YYYY-MM-DD'),
'CS');
insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('王成剛','男','004',
to_date('2000-2-23','YYYY-MM-DD'),
'IS');
insert
into
Teacher(Tname,
Tsex,
Cno,
Tdate,Tdept)
values
('馬悅','女','008',
to_date('2000-9-26','YYYY-MM-DD'),
'CS');Score表:insertintoscore(sno,cno,score)values('96001','001','77.5');
insertintoscore(sno,cno,score)values('96001','003','89');
insertintoscore(sno,cno,score)values('96001','004','86');
insertintoscore(sno,cno,score)values('96001','005','82');
insertintoscore(sno,cno,score)values('96002','001','88');
insertintoscore(sno,cno,score)values('96002','003','92.5');
insertintoscore(sno,cno,score)values('96002','006','90');
insertintoscore(sno,cno,score)values('96005','004','92');
insertintoscore(sno,cno,score)values('96005','005','90');
insertintoscore(sno,cno,score)values('96005','006','89');
insertintoscore(sno,cno,score)values('96005','007','76');
insertintoscore(sno,cno,score)values('96003','001','69');
insertintoscore(sno,cno,score)values('97001','001','96');
insertintoscore(sno,cno,score)values('97001','008','95');
insertintoscore(sno,cno,score)values('96004','001','87');
insertintoscore(sno,cno,score)values('96003','003','91');
insertintoscore(sno,cno,score)values('97002','003','91');
insertintoscore(sno,cno,score)values('97002','004',);
insertintoscore(sno,cno,score)values('97002','006','92');
insertintoscore(sno,cno,score)values('97004','005','90');
insertintoscore(sno,cno,score)values('97004','006','85');
例2-2:(多行插入)將表Student中在計(jì)算機(jī)系(‘CS’)的學(xué)生數(shù)據(jù)插入到表S1中。答:insertintoS1(sno,sname,sdept,sage)selectsno,sname,sdept,sagefromstudentwheresdept=’CS’;例2-3:(利用查詢來(lái)實(shí)現(xiàn)表的定義與數(shù)據(jù)插入)求每一個(gè)學(xué)生的平均成績(jī),把結(jié)果存入數(shù)據(jù)庫(kù)表Student_Gr中。答:createtableStudent_Gr
(snochar(5),
avg_scorechar(3));SelectSno,AVG(Score)fromScore;例2-4:(修改數(shù)據(jù))將S1表中所有學(xué)生的年齡加2。答:updateS1setage=age+2;例2-5:(修改數(shù)據(jù))將Course表中‘程序設(shè)計(jì)’課時(shí)數(shù)修改成與‘?dāng)?shù)據(jù)結(jié)構(gòu)’的課時(shí)數(shù)相同。答:updateCoursesetCtime=(selectCtimefromcoursewherecname='數(shù)據(jù)結(jié)構(gòu)')wherecname='程序設(shè)計(jì)'例2-6:(插入數(shù)據(jù))向Score表中插入數(shù)據(jù)(‘98001’,‘001insertintoscorevalues('98001','001',95)ERRORatline1:ORA-02291:integrityconstraint(SYSTEM.CNO_FK)violated-parentkeynotfound未找到相應(yīng)主碼對(duì)應(yīng)的外碼。即未設(shè)置主外鍵聯(lián)系;例2-7:(插入數(shù)據(jù))向Score表中插入數(shù)據(jù)(‘97001’,‘010insertintoscorevalues('97001','010',80)ERRORatline1:ORA-02291:integrityconstraint(SYSTEM.CNO_FK)violated-parentkeynotfound未設(shè)置主外鍵聯(lián)系;例2-10:(刪除數(shù)據(jù))刪除學(xué)生表S1中學(xué)號(hào)以96打頭的學(xué)生信息。deletefromS1wheresnolike'96%';例2-11:(刪除數(shù)據(jù))刪除數(shù)據(jù)庫(kù)表S1中所有學(xué)生的數(shù)據(jù)。deleteS1;例2-12:(刪除表)刪除數(shù)據(jù)庫(kù)表S1和Student_Gr。droptableS1;dropviewStudent_Gr; [實(shí)驗(yàn)要求]①熟悉Oracle上機(jī)環(huán)境,掌握Oracle客戶端的配置;
②建立數(shù)據(jù)庫(kù)表,修改數(shù)據(jù)庫(kù)表結(jié)構(gòu),建立、刪除索引;
③對(duì)數(shù)據(jù)庫(kù)表進(jìn)行插入、修改和刪除數(shù)據(jù)的操作。[實(shí)驗(yàn)方法]①按照附錄中的操作步驟進(jìn)行客戶端的配置;
②將實(shí)驗(yàn)需求用SQL語(yǔ)句表示;
③執(zhí)行SQL語(yǔ)句;
④查看執(zhí)行結(jié)果,如果結(jié)果不正確,進(jìn)行修改,直到正確為止。[實(shí)驗(yàn)總結(jié)]①SQL語(yǔ)句以及執(zhí)行結(jié)果;
②對(duì)重點(diǎn)實(shí)驗(yàn)結(jié)果進(jìn)行分析;
③實(shí)驗(yàn)中的問(wèn)題和提高;
④收獲與體會(huì)。
實(shí)驗(yàn)二:數(shù)據(jù)查詢語(yǔ)言[實(shí)驗(yàn)日期]2013年12月23日學(xué)號(hào):119094277姓名:束豪[實(shí)驗(yàn)?zāi)康腯體會(huì)SQL語(yǔ)言數(shù)據(jù)查詢功能的豐富和復(fù)雜。[實(shí)驗(yàn)內(nèi)容]3.SQL數(shù)據(jù)查詢語(yǔ)句:例3-1:(選擇表中的若干列)求全體學(xué)生的學(xué)號(hào)、姓名、性別和年齡。selectSno,Sname,Ssex,SagefromStudent;例3-2:(不選擇重復(fù)行)求選修了課程的學(xué)生學(xué)號(hào)。selectdistinctsnofromscore;例3-3:(選擇表中的所有列)求全體學(xué)生的詳細(xì)信息。select*fromstudent;例3-4:(使用表達(dá)式)求全體學(xué)生的學(xué)號(hào)、姓名和出生年份。selectsno,sname,2011-sageas出生年份fromstudent;例3-5:(使用列的別名)求學(xué)生的學(xué)號(hào)和出生年份,顯示時(shí)使用別名“學(xué)號(hào)”和“出生年份”。selectsnoas學(xué)號(hào),2011-sageas出生年份fromstudent;例3-6:(比較大小條件)求年齡大于19歲的學(xué)生的姓名和年齡。selectsname,sagefromstudentwheresage>19;例3-7:(比較大小條件)求計(jì)算機(jī)系或信息系年齡大于18歲的學(xué)生的姓名、系和年齡。selectsname,sdept,sagefromstudentwheresage>18andsdeptin('CS','IS');例3-8:(確定范圍條件)求年齡在19歲與22歲(含20歲和22歲)之間的學(xué)生的學(xué)號(hào)和年齡。selectsno,sagefromstudentwheresagebetween20and22;例3-9:(確定范圍條件)求年齡不在19歲與22歲之間的學(xué)生的學(xué)號(hào)和年齡。selectsno,sagefromstudentwheresagenotbetween20and22;例3-10:(確定集合條件)求在下列各系的學(xué)生信息:數(shù)學(xué)系、計(jì)算機(jī)系。selectsno,sname,sdeptfromstudentwhereSdeptin(‘MA’,’CS’)groupbysdept;例3-11:(確定集合條件)求不是數(shù)學(xué)系、計(jì)算機(jī)系的學(xué)生信息。selectsno,sname,sdeptfromstudentwhereSdeptnotin(‘MA’,’CS’)groupbysdept;例3-12:(匹配查詢)求姓名是以“李”打頭的學(xué)生。select*fromstudentwheresnamelike'李%';例3-13:(匹配查詢)求姓名中含有“志”的學(xué)生。select*fromstudentwheresnamelike'%志%';例3-14:(匹配查詢)求姓名長(zhǎng)度至少是三個(gè)漢字且倒數(shù)第三個(gè)漢字必須是“馬”的學(xué)生。select*fromstudentwheresnamelike'%馬____';例3-15:(匹配查詢)求選修課程001或003,成績(jī)?cè)?0至90之間,學(xué)號(hào)為96xxx的學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī)。selectstudent.sno,cno,scorefromstudent,scorewherestudent.sno=score.snoandstudent.snolike'96___'andscorebetween80and90;例3-16:(涉及空值查詢)求缺少學(xué)習(xí)成績(jī)的學(xué)生的學(xué)號(hào)和課程號(hào)。selectsno,cnofromscorewherescoreisnull;例3-17:(控制行的顯示順序)求選修003課程或004課程的學(xué)生的學(xué)號(hào)、課程號(hào)和分?jǐn)?shù)。selectsno,cno,scorefromscorewherecnoin('003','004');例3-18:(組函數(shù))求學(xué)生總?cè)藬?shù)。selectcount(sno)fromstudent;例3-19:(組函數(shù))求選修了課程的學(xué)生人數(shù)。Selectcount(Sno)fromScorewhereCno!=null;例3-20:(組函數(shù))求計(jì)算機(jī)系學(xué)生的平均年齡。selectavg(sage)fromstudentwheresdept='CS';例3-21:(組函數(shù))求選修了課程001的最高、最低與平均成績(jī)。selectMax(score),min(score),avg(score)fromscorewherecno='001';例3-22:(分組查詢)求各門(mén)課程的平均成績(jī)與總成績(jī)。selectcno,avg(score),sum(score)fromscoregroupbycno;例3-23:(分組查詢)求各系、各班級(jí)的人數(shù)和平均年齡。selectsdept,sclass,count(sno),avg(sage)fromstudentgroupbysdept,sclass例3-24:(分組查詢)輸入以下查詢語(yǔ)句并執(zhí)行,觀察出現(xiàn)的其結(jié)果并分析其原因。SELECTSNAME,SDEPT,COUNT(*)FROMSTUDENTWHERESDEPT=’CS’GROUPBYSDEPT;原本是查詢計(jì)算機(jī)學(xué)院的人數(shù),但是select中還出現(xiàn)了姓名還有專(zhuān)業(yè),會(huì)造成數(shù)據(jù)冗余;例3-25:(分組查詢)分析以下語(yǔ)句為什么會(huì)出現(xiàn)錯(cuò)誤。并給出正確的查詢語(yǔ)句。SELECTSAGEFROMSTUDENTGROUPBYSNO;只查詢年紀(jì),然后將其顯示出來(lái),其中沒(méi)有學(xué)號(hào)類(lèi)屬性;例3-26:(分組查詢)求學(xué)生人數(shù)不足3人的系及其相應(yīng)的學(xué)生數(shù)。SELECTsdept,count(sno)asnumFROMSTUDENTgroupbysdepthavingcount(sno)<3;例3-27:(分組查詢)求各系中除01班之外的各班的學(xué)生人數(shù)。SELECTsdept,sclass,count(sno)asnumFROMSTUDENTwheresclass<>'01'groupbysdept,sclass;例3-28:(涉及空值的查詢)分別觀察各組函數(shù)、行的顯示順序以及分組查詢與空值的關(guān)系??床欢}意。例3-29:(自然連接查詢)求學(xué)生號(hào)以及其選修課程的課程號(hào)和成績(jī),但查詢結(jié)果中只能有一個(gè)SNO字段。SelectSnoCno,ScoreFromScore;例3-30:(連接查詢)求選修了課程001且成績(jī)?cè)?0分以下或成績(jī)?cè)?0分以上的學(xué)生的姓名、課程名稱(chēng)和成績(jī)。Selectsname,cname,scorefromstudent,course,scoreWherestudent.sno=score.snoAndo=oAndo='001'Andscorenotbetween70and90;例3-31:(連接查詢與表的別名)求選修了課程的學(xué)生的學(xué)生姓名、課程號(hào)和成績(jī)。Selectsname,cno,scorefromstudent,scoreWherestudent.sno=score.sno例3-32:(自身連接查詢)求年齡大于’李麗’的所有學(xué)生的姓名、系和年齡。Selectsname,sdept,sagefromstudentWheresage>(SelectsagefromstudentWheresname=’李麗’);例3-33:(外部連接查詢)求選修了課程002或003的學(xué)生的學(xué)號(hào)、課程號(hào)、課程名和成績(jī)。Selectsno,course.*,scorefromcourse,scorewhereoin('002','003')ando=o;例3-34:(子查詢)求與‘李麗’年齡相同的學(xué)生的姓名和系。Selectsname,sdept,sagefromstudentWheresagein(selectsagefromstudentwheresname='李麗');例3-35:(子查詢)求選修了課程名為’數(shù)據(jù)結(jié)構(gòu)’的學(xué)生的學(xué)號(hào)和姓名。Selectscore.sno,snamefromstudent,score,courseWherestudent.sno=score.snoando=oAndcname='數(shù)據(jù)結(jié)構(gòu)';例3-36:(子查詢ANY)求比數(shù)學(xué)系中某一學(xué)生年齡大的學(xué)生的姓名和系。Selectsname,sdeptfromstudentWheresage>any(selectsagefromstudentwheresdept='MA');例3-37:(子查詢ALL)求比數(shù)學(xué)系中全體學(xué)生年齡大的學(xué)生的姓名和系。Selectsname,sdeptfromstudentWheresage>all(selectsagefromstudentwheresdept='MA');[實(shí)驗(yàn)要求]對(duì)數(shù)據(jù)庫(kù)表進(jìn)行各種查詢操作。[實(shí)驗(yàn)方法]①將實(shí)驗(yàn)需求用SQL語(yǔ)句表示;
②執(zhí)行SQL語(yǔ)句;
③查看執(zhí)行結(jié)果,如果結(jié)果不正確,進(jìn)行修改,直到正確為止。[實(shí)驗(yàn)總結(jié)]①SQL語(yǔ)句以及執(zhí)行結(jié)果;
②對(duì)重點(diǎn)實(shí)驗(yàn)結(jié)果進(jìn)行分析;
③實(shí)驗(yàn)中的問(wèn)題和提高;
④收獲與體會(huì)。四.退出Oracle當(dāng)想停止工作并離開(kāi)SQL*PLUS,則可以在SQL*PLUS命令提示符下輸入EXIT或QUIT命令。SQL>EXIT[RETURN]或SQL>QUIT[RETURN]五.提示信息1.建議使用方法二登錄ORACLE。在此方式下,SQL*PLUS有一種緩沖區(qū)編輯器,可以用來(lái)在SQL>提示符下交互式地輸入命令和修改命令。(1)在SQL>提示符下,可直接進(jìn)行拷貝和粘貼操作。(2)在SQL>提示符下,可直接對(duì)命令緩沖區(qū)內(nèi)容進(jìn)行編輯。SQL>ED[RETURN]出現(xiàn)緩沖區(qū)編輯器窗口,自動(dòng)顯示剛剛執(zhí)行的命令語(yǔ)句。修改編輯,保存退出,返回SQL>命令提示符狀態(tài)。SQL>/[RETURN]自動(dòng)執(zhí)行緩沖區(qū)編輯器中的命令語(yǔ)句。2.一個(gè)事務(wù)從執(zhí)行一條SQL更新語(yǔ)句(INSERT、UPDATE、DELETE)開(kāi)始,當(dāng)出現(xiàn)如下任一情況時(shí),就結(jié)束該事務(wù):執(zhí)行COMMIT或ROLLBACK命令(這是一種顯式劃分事務(wù)的方式);發(fā)出DDL命令(如執(zhí)行CREATETABLE命令等);LOGOFF;程序異常結(jié)束。如果在SQL*PLUS中沒(méi)有上述四種情況,當(dāng)退出系統(tǒng)時(shí),系統(tǒng)會(huì)自動(dòng)提交最后一個(gè)事務(wù)。3.查詢本用戶賬號(hào)下的所有數(shù)據(jù)庫(kù)表的名稱(chēng):SELECT*FROMTAB;4.查看一個(gè)數(shù)據(jù)庫(kù)表的表結(jié)構(gòu):DESC表名;5.ORACLE常用的數(shù)據(jù)類(lèi)型:數(shù)據(jù)類(lèi)型表示方式說(shuō)明數(shù)字型NUMBER(n)NUMBER(n,d)可包括數(shù)字0-9、正負(fù)號(hào)(+、-)和十進(jìn)制小數(shù)點(diǎn)n:總有效位數(shù)(范圍1-38)s:小數(shù)點(diǎn)后面的位數(shù)字符型CHAR(n)VARCHAR(n)VARCHAR2(n1)可包含字母、數(shù)字和特殊字符(+、-、%、$)n<=255;n1<=2000日期型DATE日期和時(shí)間。存儲(chǔ)方式為:世紀(jì)、年、月、日、時(shí)、分、秒。缺省日期格式:中文版為09-10月-99,英文版為09-OCT-99。利用ORACLE提供的日期掩碼格式,可按需要顯示日期與時(shí)間。例如顯示系統(tǒng)日期或顯示系統(tǒng)日期、時(shí)間:SELECTTO_CHAR(SYSDATE,'YYYY-MM-DD')FROMDUAL;或SELECTTO_CHAR(SYSDATE,'YYYY-MM-DDHH:MM:SS')FROMDUAL;6.幾個(gè)常用的ORACLE函數(shù)(1)LTRIM()、RTRIM()、TRIM():去除前導(dǎo)、后綴的空格或字符。(2)UPPER()、LOWER():字符大小寫(xiě)轉(zhuǎn)換。(3)SUBSTR(str,m,n):截取子串。其中,str:字符串;m:開(kāi)始位置;n:長(zhǎng)度。7.在Oracle中,可以使用SETAUTOCOMMIT命令來(lái)設(shè)置事務(wù)自動(dòng)提交環(huán)境。一旦設(shè)置了自動(dòng)提交,則在每個(gè)SQL操作INSERT、UPDATE或DELETE語(yǔ)句之后,系統(tǒng)就自動(dòng)進(jìn)行了提交。一般情況下,最好不要使用自動(dòng)提交方式。設(shè)置自動(dòng)提交的語(yǔ)句格式:SETAUTOCOMMITIMMEDIATE;
SETAUTOCOMMITON;設(shè)置非自動(dòng)提交的語(yǔ)句格式:SETAUTOCOMMITOFF;Oracle以非自動(dòng)提交方式為缺省方式。8.查詢其他用戶的數(shù)據(jù)(必須為授權(quán)的用戶),應(yīng)在表名前增加用戶名作為限定詞。格式為:用戶名.表名9.查詢本用戶所有表上的完整性約束名稱(chēng)。SELECTConstraint_name,Constraint_type,Table_name,R_constraint_nameFROMUser_constraints;ConstraintType
Character
PRIMARYKEY
P
UNIQUEKEY
U
FOREIGNKEY
R
CHECK,NOTNULL
C
10.查詢本用戶所有表上的非空約束和CHECK約束條件。SELECTConstraint_name,Search_conditionFROMUser_constraints;11.查詢本用戶所有表上定義的完整性約束的約束列名SELECTConstraint_name,Table_name,Column_nameFROMUser_cons_columns;六.教學(xué)管理數(shù)據(jù)庫(kù)設(shè)計(jì)各表的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)如下:注意:字符型c用varchar2(xx)1.學(xué)生情況表StudentCS:計(jì)算機(jī)系SNO(C,5)CS:計(jì)算機(jī)系學(xué)號(hào)SNAME(C,10)姓名SDEPT(C,2)系SCLASS(C,2)班級(jí)SSEX(C,2)性別SAGE(N,2)年齡96001馬小燕CS01女21MA:數(shù)學(xué)系IS:信息系96002MA:數(shù)學(xué)系IS:信息系黎明CS01男1896003劉東明MA01男1896004趙志勇IS02男2097001馬蓉MA02女1997002李成功CS01男2097003黎明IS03女1997004李麗CS02女1996005司馬志明CS02男18
主關(guān)鍵字:SNO非空字段:SNAME,SDEPT,SCLASS2.課程名稱(chēng)表Course3.教師授課表TeachCNO(C,3)課程號(hào)CNAME(C,16)課程名稱(chēng)CTIME(N,3)學(xué)時(shí)數(shù)TNAME(C,8)教師姓名TSEX(C,2)性別CNO(C,3)課程號(hào)TDATE授課日期TDEPT(C,2)系001數(shù)學(xué)分析144王成剛男0041999.9.5
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年六年級(jí)品社下冊(cè)《走出國(guó)門(mén)》說(shuō)課稿 山東版
- 4我們的公共生活(說(shuō)課稿)-2023-2024學(xué)年道德與法治五年級(jí)下冊(cè)統(tǒng)編版
- 2025產(chǎn)品技術(shù)轉(zhuǎn)讓合同范本
- 2025電力工程勘察設(shè)計(jì)合同示本
- 2024年四年級(jí)英語(yǔ)下冊(cè) Unit 3 My day第1課時(shí)說(shuō)課稿 譯林牛津版
- 2025住宅租賃合同偏向甲方
- 西雙版納庭院地坪施工方案
- 2023二年級(jí)數(shù)學(xué)上冊(cè) 6 表內(nèi)乘法(二)第1課時(shí) 7的乘法口訣配套說(shuō)課稿 新人教版
- 9 古詩(shī)三首-暮江吟(說(shuō)課稿)-2024-2025學(xué)年統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)
- Module 3 Unit 1 Collecting stamps is my hobby (說(shuō)課稿)-2024-2025學(xué)年外研版(三起)英語(yǔ)六年級(jí)上冊(cè)
- 《火力發(fā)電廠汽水管道設(shè)計(jì)規(guī)范+DLT+5054-2016》詳細(xì)解讀
- 幕墻施工成品及半成品保護(hù)措施
- 基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 2024年執(zhí)業(yè)醫(yī)師考試-醫(yī)師定期考核(口腔)筆試參考題庫(kù)含答案
- 宮頸癌后裝治療及護(hù)理
- 2024年度-IATF16949運(yùn)行培訓(xùn)課件
- 理解師生關(guān)系的重要性
- 統(tǒng)編版語(yǔ)文八年級(jí)下冊(cè)第7課《大雁歸來(lái)》分層作業(yè)(原卷版+解析版)
- 2024年湖南省普通高中學(xué)業(yè)水平考試政治試卷(含答案)
- 零售企業(yè)加盟管理手冊(cè)
- 設(shè)備維保的維修流程與指導(dǎo)手冊(cè)
評(píng)論
0/150
提交評(píng)論