數(shù)據(jù)庫第三章部分習(xí)題答案_第1頁
數(shù)據(jù)庫第三章部分習(xí)題答案_第2頁
數(shù)據(jù)庫第三章部分習(xí)題答案_第3頁
數(shù)據(jù)庫第三章部分習(xí)題答案_第4頁
數(shù)據(jù)庫第三章部分習(xí)題答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫第三章部分習(xí)題答案數(shù)據(jù)庫第三章部分習(xí)題答案數(shù)據(jù)庫第三章部分習(xí)題答案數(shù)據(jù)庫第三章部分習(xí)題答案編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:對于教學(xué)數(shù)據(jù)庫的三個(gè)基本表S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)試用SQL的查詢語句表達(dá)下列查詢:3.2.1檢索年齡小于17歲的女學(xué)生的學(xué)號和姓名selects#,snamefromSwhereage<17andsex=F;3.2.2檢索男生所學(xué)課程的課程號和課程名selectc#,cnamefromCwherec#in(selectdistinctc#fromSCwheres#in(selects#fromSwheresex=M))3.2.3檢索男生所學(xué)課程的任課老師的工號和姓名selectt#,tnamefromTwheret#in(selectdistinctt#fromCwherec#in(selectdistinctc#fromSC

wheres#in(selects#fromSwheresex=1)));3.2.4檢索至少選修兩門課程的學(xué)生的學(xué)號

selects#fromSCgroupbys#havingcount(c#)>=2;3.2.5檢索至少有學(xué)號為S2和S4所學(xué)的課程和課程名selectc#,cnamefromCwherec#in((selectc#fromscwheres#='S2')intersect(selectc#fromscwheres#='S4'));3.2.6檢索‘WANG’同學(xué)不學(xué)的課程號selectc#fromcexcept(selectdistinctc#fromscwheres#=(selects#fromswheresname='WANG'));3.2.7檢索全部學(xué)生都選修的課程號和課程名selectc#,cnamefromc

wherenotexists(selects#fromswhere#notin(selectc#fromscwhere#=#));3.2.8檢索選修課程包含'LIU'老師所授課程的全部課程的學(xué)生的學(xué)號和姓名selects#,snamefromswherenotexists((selectc#fromcwheret#=(selectt#fromtwheretname='LIU'))except(selectc#fromscwhere#=#));設(shè)有兩個(gè)基本表R(A,B,C)和S(A,B,C),試用SQL查詢語句表達(dá)下列關(guān)系代數(shù)表達(dá)式:=1\*GB3①R∪S =2\*GB3②R∩S =3\*GB3③R-S ④ R×S ⑤πA,B(R)πB,C(S)3=3課⑥π1,6(σ3=4(R×S) ⑦π1,2,3(RS) ⑧R÷πC(S)3=3課解:①(SELECT*FROMR) UNION (SELECT*FROMS);②(SELECT*FROMR) INTERSECT (SELECT*FROMS);③(SELECT*FROMR) MINUS (SELECT*FROMS);④SELECT*FROMR,S;⑤SELECT,,FROMR,SWHERE=;⑥SELECT,FROMR,SWHERE=;⑦SELECTR.* (R.*表示R中全部屬性)FROMR,SWHERE=;⑧ R÷πC(S)的元組表達(dá)式如下:{t|(?u)(?v)(?w)(R(u)∧S(v)∧R(w)∧w[1]=u[1]∧w[2]=u[2]∧w[3]=v[3]∧t[1]=u[1]∧t[2]=u[2])}據(jù)此,可寫出SELECT語句: SELECTA,BFROMRRXWHERENOTEXISTS(SELECT*FROMSWHERENOTEXISTS(SELECT*FROMRRYWHERE=AND=AND=);試敘述SQL語言的關(guān)系代數(shù)特點(diǎn)和元組演算特點(diǎn)。答:SQL的關(guān)系代數(shù)特點(diǎn)如下:有關(guān)系代數(shù)運(yùn)算的并、交、差、自然聯(lián)接等運(yùn)算符;FROM子句體現(xiàn)了笛卡爾積操作,WHERE子句體現(xiàn)了選擇操作,SELECT子句體現(xiàn)了投影操作。SQL的元組演算特點(diǎn)如下:FROM子句中的基本表名應(yīng)視為“元組變量”,屬性名應(yīng)視為“元組分量”;有存在量詞EXISTS符號。試用SQL更新語句表達(dá)對題教學(xué)數(shù)據(jù)庫中關(guān)系S、SC、C的更新操作:=1\*GB3①往關(guān)系C中插一個(gè)課程元組('C8','VC++','T6')。=2\*GB3②檢索所授每門課程平均成績均大于80分的教師姓名,并把檢索到的值送往另一個(gè)已存在的表FACULTY(TNAME)。=3\*GB3③在SC中刪除尚無成績的選課元組。=4\*GB3④把選修LIU老師課程的女同學(xué)選課元組全部刪去。=5\*GB3⑤把MATHS課不及格的成績?nèi)臑?0分。=6\*GB3⑥把低于所有課程總平均成績的女同學(xué)成績提高5%。=7\*GB3⑦在表SC中修改C4課程的成績,若成績小于等于70分時(shí)提高5%,若成績大于70 分時(shí)提高4%(用兩種方法實(shí)現(xiàn),一種方法是用兩個(gè)UPDATE語句實(shí)現(xiàn),另一種方法是用帶CASE操作的一個(gè)UPDATE語句實(shí)現(xiàn))。⑧在表SC中,當(dāng)某個(gè)成績低于全部課程的平均成績時(shí),提高5%。解:①INSERTINTOCVALUES('C8','VC++','T6');②INSERTINTOFACULTY(TNAME)SELECTDISTINCTTEACHERFROM(SELECTTEACHER,#,AVG(GRADE)FROMS,SCWHERE#=#GROUPBYTEACHER,#)ASRESULT(TEACHER,C#,AVG_GRADE)ASXWHERE80<=ALL(SELECTAVG_GRADEFROMRESULTASYWHERE=;③DELETEFROMSCWHEREGRADEISNULL;④DELETEFROMSCWHERES#IN(SELECTS#FROMSWHERESEX='F')ANDC#IN(SELECTC#FROMCWHERETEACHER='LIU');⑤UPDATESCSETGRADE=60WHEREGRADE<60ANDC#IN(SELECTC#FROMCWHERECNAME='MATHS');⑥UPDATESCSETGRADE=GRADE*WHERES#IN(SELECTS#FROMSWHERESEX='F')ANDGRADE<(SELECTAVG(GRADE)FROMSC);⑦用兩個(gè)UPDATE語句實(shí)現(xiàn):UPDATESCSETGRADE=GRADE*WHEREC#='C4'ANDGRADE>70;UPDATESCSETGRADE=GRADE*WHEREC#='C4'ANDGRADE<=70;(這兩個(gè)UPDATE語句的順序不能顛倒。)用一個(gè)UPDATE語句實(shí)現(xiàn):UPDATESCSETGRADE=GRADE*CASEWHENGRADE>70THENELSEENDWHEREC#='C4';⑧UPDATESC SETGRADE=GRADE* WHEREGRADE<(SELECTAVG(GRADE) FROMSC);設(shè)數(shù)據(jù)庫中有三個(gè)關(guān)系: 職工表 EMP(E#,ENAME,AGE,SEX,ECITY),其屬性分別表示職工工號、姓名、年齡、性別和籍貫。工作表 WORKS(E#,C#,SALARY),其屬性分別表示職工工號、工作的公司編號和工資。公司表 COMP(C#,CNAME,CITY),其屬性分別表示公司編號、公司名稱和公司所在城市。試用SQL語句寫出下列操作:①用CREATETABLE語句創(chuàng)建上述三個(gè)表,需指出主鍵和外鍵。②檢索超過50歲的男職工的工號和姓名。③假設(shè)每個(gè)職工只能在一個(gè)公司工作,檢索工資超過1000元的男性職工工號和姓名。④假設(shè)每個(gè)職工可在多個(gè)公司工作,檢索在編號為C4和C8公司兼職的職工工號和姓名。⑤檢索在“聯(lián)華公司”工作、工資超過1000元的男性職工的工號和姓名。⑥假設(shè)每個(gè)職工可在多個(gè)公司工作,檢索每個(gè)職工的兼職公司數(shù)目和工資總數(shù).顯示(E#,NUM,SUM_SALARY),分別表示工號、公司數(shù)目和工資總數(shù)。⑦工號為E6的職工在多個(gè)公司工作,試檢索至少在E6職工兼職的所有公司工作的職工工號。⑧檢索聯(lián)華公司中低于本公司平均工資的職工工號和姓名。⑨在每一公司中為50歲以上職工加薪100元(若職工為多個(gè)公司工作,可重復(fù)加)。⑩在EMP表和WORKS表中刪除年齡大于60歲的職工有關(guān)元組。解:① CREATETABLEEMP(E# CHAR(4)NOTNULL,ENAME CHAR(8)NOTNULL,AGE SMALLINT,SEX CHAR(1),ECITY CHAR(20),PRIMARYKEY(E#));CREATETABLECOMP(C# CHAR(4)NOTNULL,CNAME CHAR(20)NOTNULL,CITY CHAR(20),PRIMARYKEY(C#)); CREATETABLEWORKS(E# CHAR(4)NOTNULL,C# CHAR(4)NOTNULL,SALARY SMALLINT,PRIMARYKEY(E#,C#),FOREIGNKEY(E#)REFERENCESEMP(E#),FOREIGNKEY(C#)REFERENCESCOMP(C#));② SELECTE#,ENAMEFROMEMPWHEREAGE>50ANDSEX='M';③ SELECT#,ENAMEFROMEMP,WORKSWHERE#=#ANDSALARY>1000;④ SELECT#,FROMEMPA,WORKSB,WORKSCWHERE#=#AND#=#AND#='C4'AND#='C8';⑤ SELECT#,FROMEMPA,WORKSB,COMPCWHERE#=#AND#=#ANDCNAME='聯(lián)華公司'ANDSALARY>1000ANDSEX='M';⑥ SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUM_SALARYFROMWORKSGROUPBYE#;⑦ SELECT#FROMWORKSXWHERENOTEXISTS(SELECT*FROMWORKSYWHEREE#='E6'ANDNOTEXISTS(SELECT*FROMWORKSZWHERE#=#AND#=#));⑧ SELECT#,FROMEMPA,WORKSB,COMPCWHERE#=#AND#=#ANDCN

溫馨提示

  • 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

提交評論