SQL試驗(yàn)習(xí)題解答_第1頁
SQL試驗(yàn)習(xí)題解答_第2頁
SQL試驗(yàn)習(xí)題解答_第3頁
SQL試驗(yàn)習(xí)題解答_第4頁
SQL試驗(yàn)習(xí)題解答_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、SQL實(shí)驗(yàn)7-9習(xí)題解答習(xí)題71、查詢1986年出生的讀者姓名、身份證號(hào)。select姓名,身份證號(hào)from讀者wheremid(身份證號(hào),7,4)='1986;&&從身份證號(hào)字段中取出出生年份2、查詢?cè)趪H學(xué)院工作的讀者編號(hào)、姓名和性別。select讀者編號(hào),姓名,性別from讀者where工作單位like'國際學(xué)院'3、查詢沒有歸還圖書的讀者編號(hào)、讀者姓名和讀者工作單位。select讀者編號(hào),姓名,工作單位from讀者where讀者編號(hào)in(select讀者編號(hào)from借閱wherenot是否歸還);4、查詢每種類別的圖書的分類號(hào)、最高價(jià)格和平均價(jià)格

2、,并按最高價(jià)格的降序輸出。select分類號(hào),max(價(jià)格)max(價(jià)格工avg(價(jià)格)from圖書groupby分類號(hào)orderbymax(價(jià)格)desc;5、查詢Java圖書的詳細(xì)信息。select*from圖書where圖書名like'*Java*'6、查詢?cè)?992年到2000年之間入庫的圖書編號(hào)、出版時(shí)間、入庫時(shí)間和圖書名稱,并按入庫時(shí)間排序輸出。select圖書編號(hào),出版時(shí)間,入庫時(shí)間,圖書名from圖書orderby入庫時(shí)間;7、查詢沒有借閱圖書編號(hào)以001開頭的讀者編號(hào)和姓名。select讀者編號(hào),姓名from讀者where讀者編號(hào)notin(select讀者編

3、號(hào)from借閱where圖書編號(hào)like'001*');8、查詢借閱了001-000029圖書編號(hào)的讀者編號(hào)、圖書編號(hào)、借書日期。select讀者編號(hào),圖書編號(hào),借閱日期from借閱where圖書編號(hào)='001-000029'9、查詢沒有借書的讀者姓名。select姓名from讀者where讀者編號(hào)notin(select讀者編號(hào)from借閱);10、查詢圖書類別為001號(hào)圖書的種類和圖書數(shù)量。selectcount(*),sum(圖書數(shù)量)from圖書where分類號(hào)='001'11、查詢每種圖書的入庫數(shù)量。select分類號(hào),sum(圖書數(shù)量

4、)from圖書groupby分類號(hào);12、查詢既借閱了'001-000010圖書又借閱了'005-000018圖書的讀者借書信息。select*from借閱where圖書編號(hào)='001-000010'and讀者編號(hào)in(select讀者編號(hào)from借閱where圖書編號(hào)='005-000018');1、查詢文學(xué)類的圖書基本信息。selecta.*from圖書a圖書分類bwherea.分類號(hào)=b.分類號(hào)and分類號(hào).圖書名='文學(xué)類;2、查詢讀者馬永強(qiáng)借閱的圖書編號(hào)、圖書名稱、借書日期和歸還日期。selectb.圖書編號(hào),圖書圖書名,借閱日

5、期,歸還日期from讀者a,圖書b,借閱cwherea.讀者編號(hào)二c.讀者編號(hào)andb.圖書編號(hào)=c.圖書編號(hào)and姓名='馬永強(qiáng)'3、查詢國際學(xué)院沒有歸還圖書的讀者編號(hào)、讀者名稱、圖書名稱、借書日期和歸還日期。selecta.讀者編號(hào),姓名,圖書圖書名,借閱日期,歸還日期from讀者a,圖書b,借閱cwherea.讀者編號(hào)二c.讀者編號(hào)andb.圖書編號(hào)=c.圖書編號(hào)and工作單位like'國際學(xué)院'and是否歸還=no;4、查詢借閱了清華大學(xué)出版社出版的圖書的讀者編號(hào)、讀者名稱、圖書名稱、借書日期和歸還日期。selecta.讀者編號(hào),姓名,圖書圖書名,借閱日

6、期,歸還日期from讀者a,圖書b,借閱cwherea.讀者編號(hào)二c.讀者編號(hào)andb.圖書編號(hào)=c.圖書編號(hào)and出版社名='清華大學(xué)出版社'5、使用存在量詞查詢沒有借閱圖書的讀者編號(hào)、讀者名稱和工作單位。selecta.讀者編號(hào),姓名,工作單位from讀者awherenotexists(select*from借IMJbwherea.讀者編號(hào)=b.讀者編號(hào));6、查詢至少借閱了3本圖書的讀者編號(hào)、讀者名稱、圖書編號(hào)、圖書名稱,按讀者編號(hào)排序輸出。selecta.讀者編號(hào),姓名,b.圖書編號(hào),圖書圖書名from讀者a,圖書b,借閱cwherea.讀者編號(hào)二c.讀者編號(hào)andb.

7、圖書編號(hào)=c.圖書編號(hào)anda.讀者編號(hào)in(select讀者編號(hào)from借閱groupby讀者編號(hào)havingcount(*)>=3)orderbya.讀者編號(hào);7、查詢借書時(shí)間在2005到2006年之間的讀者編號(hào)、讀者名稱、圖書編號(hào)、圖書名稱。selecta.讀者編號(hào),姓名,b.圖書編號(hào),圖書圖書名from讀者a,圖書b,借閱cwherea.讀者編號(hào)二c.讀者編號(hào)andb.圖書編號(hào)=c.圖書編號(hào)andyear(借閱日期)between2005and2006;8、使用存在量詞查詢借閱了圖書的讀者編號(hào)、讀者名稱和工作單位。selecta.讀者編號(hào),姓名,工作單位from讀者awheree

8、xists(select*from借閱bwherea.讀者編號(hào)=b.讀者編號(hào));9、查詢所借圖書的總價(jià)在150元以上的讀者編號(hào)、讀者名稱和所借圖書的總價(jià)。selecta.讀者編號(hào),姓名,sum(價(jià)格)from讀者a,圖書b,借閱cwherea.讀者編號(hào)二c.讀者編號(hào)andb.圖書編號(hào)=c.圖書編號(hào)groupbya.讀者編號(hào)姓名havingsum(價(jià)格)=150;10、查詢沒有借閱管理類圖書的讀者編號(hào)、讀者名稱、出生日期。select讀者編號(hào),姓名,mid(身份證號(hào),7,4)+'-'+mid(身份證號(hào),11,2)+'-'+mid(身份證號(hào),13,2)birthda

9、yfrom讀者where讀者編號(hào)notin(selecta.讀者編號(hào)from讀者a,圖書b,借閱c,圖書分類號(hào)dwherea.讀者編號(hào)二c.讀者編號(hào)andb.圖書編號(hào)=c.圖書編號(hào)andb.分類號(hào)=d.分類號(hào)and分類號(hào)圖書名='管理類');1、將清華大學(xué)出版社出版的圖書的單價(jià)提高10%。update圖書set價(jià)格=價(jià)格wherepublishing圖書名=清華大學(xué)出版社;2、將計(jì)算機(jī)應(yīng)用類的圖書價(jià)格減少5元。update圖書set價(jià)格=價(jià)格-5where圖書編號(hào)in(select分類號(hào)from圖書分類號(hào)where分類號(hào)圖書名=計(jì)算機(jī)應(yīng)用類);3、將1987年出生的讀者所借圖書

10、的歸還標(biāo)志改為已歸返。update借閱set是否歸還=.T.where讀者編號(hào)in(select讀者編號(hào)from讀者wheremid(身份證號(hào),7,4)=1987);4、插入一條借書記錄:讀者編號(hào)06-00008,圖書編號(hào)003-000024,借書日期03/25/07,還書日期05/25/07,是否歸返F。insertinto借閱values('060008','-003024',人20003-25,A2007-05-25,.F.);5、刪除2006年8月的借書記錄。deletefrom借I閱whereyear(借閱日期)=2006andmonth(借閱日期)=

11、8;6、刪除文學(xué)類的借書記錄。deletefrom借閱where圖書編號(hào)in(selecta.圖書編號(hào)from圖書a,圖書分類號(hào)bwherea.分類號(hào)=b.分類號(hào)and分類號(hào)圖書名='文學(xué)類;)7、刪除馬永強(qiáng)讀者的借書記錄。deletefrom借閱where讀者編號(hào)in(select讀者編號(hào)from讀者where姓名=馬永強(qiáng));SQLServer數(shù)據(jù)庫復(fù)習(xí)題七及答案一單項(xiàng)選擇題1 是數(shù)據(jù)庫系統(tǒng)的核心,它負(fù)責(zé)數(shù)據(jù)庫的配置、存取、管理和維護(hù)等工作。(c)A、操作系統(tǒng)B、關(guān)系模型C、數(shù)據(jù)庫管理系統(tǒng)D、數(shù)據(jù)庫2 SQLServer2000是一款基于體系的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。(A)A客戶機(jī)/服

12、務(wù)器B、主機(jī)C、N層D、單機(jī)3下面哪一個(gè)不是SQLServer2000的基本數(shù)據(jù)類型(A)A、VARIANTB、VARCHAR、CVARBINARYD、NVARCHAR4下面的類型中寬度最大的是(C)A、CHAR(5)B、VARCHAR(5)C、NCHAR(5)D、BIGINT5.表達(dá)式LEN('電子學(xué)院')+DATALENGTH(GETDATE()的值為(C)A、8B、10C、12D、166在SQLServer2000中,數(shù)據(jù)存儲(chǔ)的基本單位是頁,頁的大小是(D)A、1KB、2KC、4KD、8K7.在使用CREATEDATABASE令創(chuàng)建數(shù)據(jù)庫時(shí),F(xiàn)ILENAMES項(xiàng)定義的是(

13、D)A、文件增長(zhǎng)量B、文件大小C、邏輯文件名D、物理文件名8關(guān)于表結(jié)構(gòu)的定義,下面說法中錯(cuò)誤的是(C)A、表名在同一個(gè)數(shù)據(jù)庫內(nèi)應(yīng)是唯一的B、創(chuàng)建表使用CREATETABL命令C刪除表使用DELETETABL瑜令D、修改表使用ALTERTABL瑜令9下面哪一個(gè)約束用來禁止輸入重復(fù)值?(A)A、UNIQUEB、NULLC、DEFAULTD、FOREIGNKEY10下面關(guān)于登錄賬戶、用戶和角色的說法錯(cuò)誤的是(C)A、登錄賬戶是服務(wù)器級(jí)的B、用戶是登錄賬戶在某個(gè)數(shù)據(jù)庫中的映射C用戶不一定要和登錄賬戶相關(guān)聯(lián)D、角色其實(shí)就是用戶組11 .在SELEC砒句中,用于去除重復(fù)行的關(guān)鍵字是(B)A、TOPB、DI

14、STINCTC、PERCENTD、HAVING12 .若想查詢出所有姓張的、且出生日期為空的學(xué)生信息,則WHER條件應(yīng)為(C)A、姓名LIKE以姓名LIKE%AND出生日期*AND出生日期=NULL=NULLC姓名LIKE'張%AND出生日期ISNULLD姓名LIKE'張'AND出生日期ISNULL13下面關(guān)于視圖的說法中,錯(cuò)誤的是(C)A、視圖是個(gè)虛擬表B、可以使用視圖更新數(shù)據(jù),但每次更新只能影響一個(gè)表C不能為視圖定義觸發(fā)器D、可以創(chuàng)建基于視圖的視圖14下面關(guān)于觸發(fā)器的描述,錯(cuò)誤的是(A)A、觸發(fā)器是一種特殊的存儲(chǔ)過程,用戶可以直接調(diào)用日觸發(fā)器表和DELETED1沒有

15、共同記錄C觸發(fā)器可以用來定義比CHECK勺束更復(fù)雜的規(guī)則D刪除觸發(fā)器可以使用DROPTRIGGER令,也可以使用企業(yè)管理器15下面關(guān)于事務(wù)的描述,錯(cuò)誤的是(D)A、事務(wù)可用于保持?jǐn)?shù)據(jù)的一致性B、事務(wù)應(yīng)該晝小且應(yīng)盡快提交C應(yīng)避免人工輸入操作出在在事務(wù)中D、在事務(wù)中可以使用ALTERDATEABSE二填空題1 SQLServer是作為WindowsNT或2000的一個(gè)服務(wù)運(yùn)行的,用戶可以啟動(dòng)、暫?;蛲V顾?。2 SQLServer服務(wù)包括有_SQLServer服務(wù)、_SQLServerAgent服務(wù)、MicrosoftSearch和MSDTd艮務(wù)。3 SQLServer有兩類數(shù)據(jù)庫,_系統(tǒng)數(shù)據(jù)庫和用

16、戶數(shù)據(jù)庫。其中為新的用戶數(shù)據(jù)庫提供模板的系統(tǒng)數(shù)據(jù)庫是model。4所有的數(shù)據(jù)庫都有一個(gè)主數(shù)據(jù)文件和一個(gè)或多個(gè)事務(wù)日志文件,此外,還可能有次要數(shù)據(jù)文件。5.向表中添加數(shù)據(jù)應(yīng)使用INSERT(或填I(lǐng)NSERTINTO)命令,更新數(shù)據(jù)應(yīng)使用UPDATE命令。6在SQLServer2000中,約束有非空約束、缺省約束、_主鍵約束、外鍵約束、檢查約束和唯一約束等6種類型。7 對(duì)象權(quán)限是指用戶基于數(shù)據(jù)庫對(duì)象層次上的訪問和操作權(quán)限,共有5種:SELECT、INSERT、DELETE、_UPDATE和EXECUTE。(或填更新、執(zhí)行)8 UNION可以把兩個(gè)或多個(gè)SELEC砒句的查詢結(jié)果組合成一個(gè)結(jié)果集,使用

17、時(shí)要求所有SELEC砒句的歹U數(shù)應(yīng)相同,對(duì)應(yīng)列的數(shù)據(jù)類型相容。9 索引表的順序與數(shù)據(jù)行的物理順序相同的索引稱為_聚集(或聚簇或簇)索引。10使用游標(biāo)的一般步驟應(yīng)為:_創(chuàng)建游標(biāo)、打開游標(biāo)、從游標(biāo)的結(jié)果集中讀取數(shù)據(jù)、對(duì)游標(biāo)中的數(shù)據(jù)逐行操作、關(guān)閉游標(biāo)和釋放游標(biāo)。11 _事務(wù)是指一個(gè)操作序列,這些操作序列要么都被執(zhí)行,要么都不被執(zhí)行。12 _差異備份只記錄自上次完整數(shù)據(jù)庫備份后發(fā)生更改的數(shù)據(jù)。三判斷題1 .外鍵是指一個(gè)表中含有與另外一個(gè)表的主鍵相同的列或列組,外鍵不要求惟一。(,)2 .SQLServer2000支持Unicode字符集,相應(yīng)數(shù)據(jù)類型為text、char和varchar。(x)3企業(yè)管

18、理器是SQLServer提供的最主要的數(shù)據(jù)庫管理工具,它以樹形結(jié)構(gòu)的形式來管理數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫和數(shù)據(jù)庫中的對(duì)象。(V)4.全局變量與局部變量一樣,用戶必須進(jìn)行聲明后才能使用。(X)5在SQLServer2000中,由于不能跨頁存儲(chǔ)數(shù)據(jù)行,所以頁中每一行最多包含的數(shù)據(jù)量是8060B。(V)6 .數(shù)據(jù)完整性就是指數(shù)據(jù)的正確性、完備性和一致性。(,)7 .若使用REVOKE令撤消某用戶創(chuàng)建表的權(quán)限,則該用戶將肯定無權(quán)創(chuàng)建表。(X)8 .WITHCHECKOPTIO味示使用視圖更新數(shù)據(jù)時(shí)應(yīng)滿足視圖定義中設(shè)置的條件(,)9 .表的每個(gè)觸發(fā)動(dòng)作只能有一個(gè)INSTEADOF觸發(fā)器。(,)10在使用差異數(shù)

19、據(jù)庫備份還原數(shù)據(jù)庫時(shí),應(yīng)先還原最新的完整數(shù)據(jù)庫備份。四查詢?cè)O(shè)計(jì)某個(gè)學(xué)籍?dāng)?shù)據(jù)庫有如下表結(jié)構(gòu):學(xué)生(學(xué)號(hào),姓名,性別,出生日期,班級(jí))課程(課程號(hào),課程名稱,課程類別,課時(shí))選課(學(xué)號(hào),課程號(hào),成績(jī))請(qǐng)完成下列查詢要求。1查詢出“軟件041”班的所有男生的學(xué)號(hào)和姓名。SELECT學(xué)號(hào),姓名FRO昉生WHEREE級(jí)='軟件041'AND性別='男2查詢出所有姓張的同學(xué)的姓名和班級(jí)。SELECT*FRO酈程WHER踝程名稱LIKE'%言3.查詢出“C語言”課程成績(jī)前5名的學(xué)生的學(xué)號(hào)、姓名和班級(jí)。SELECTTOP5學(xué)生.學(xué)號(hào),姓名,班級(jí)FRO昉生JOIN選課ON學(xué)生.學(xué)

20、號(hào)=選課.學(xué)號(hào)JOIN課程ON課程.課程號(hào)=選課.課程號(hào)WHER踝程名稱='C語言O(shè)RDERB快績(jī)DESC4查詢出各班級(jí)學(xué)生人數(shù)。SELECT班級(jí),COUNT(*)AS人數(shù)FROM生GROUPBYO5查詢出“計(jì)算機(jī)應(yīng)用基礎(chǔ)”課程成績(jī)高于張三同學(xué)此門課程成績(jī)的學(xué)生的學(xué)號(hào)和姓名。SELECT生.學(xué)號(hào),姓名FRO®生JOIN選課ON學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)JOIN課程ON課程.課程號(hào)=選課.課程號(hào)WHER踝程名稱='計(jì)算機(jī)應(yīng)用基礎(chǔ)AND成績(jī)>(SELECT績(jī)FRO®生JOIN選課ON學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào)JOIN課程ON課程.課程號(hào)=選課.課程號(hào)WHER踝程名

21、稱='計(jì)算機(jī)應(yīng)用基礎(chǔ)AND姓名='張三)五綜合題根據(jù)下面某教學(xué)管理數(shù)據(jù)庫的表結(jié)構(gòu),完成下面的程序填空題。教師(職工號(hào),姓名,學(xué)歷,職稱)課程(課程號(hào),課程名稱,課程類別)任課(職工號(hào),課程號(hào),周課時(shí))1補(bǔ)填下面的存儲(chǔ)過程的定義,使其被調(diào)用時(shí),能根據(jù)調(diào)用程序提供的教師姓名使用輸出參數(shù)返回該教師任課的課程數(shù)。CREATEPROCEDURO:JM姓名查詢?nèi)握n課程數(shù)姓名VARCHAR(10),課程數(shù)INT_OUTPUTASSELECT_課程數(shù)=COUNT(*)FROMB師JOIN任課ON教師.職工號(hào)=任課.職工號(hào)WHERE_姓名_=姓名2完成下面的觸發(fā)器的定義,當(dāng)向任課表中插入記錄時(shí),

22、觸發(fā)器能判斷若插入的記錄使該教師的任課周課時(shí)總計(jì)超過20,則回滾插入操作。CREATETRIGGER!力口教學(xué)任務(wù)ON任課AFTERINSERTASDECLARE總課時(shí)INTSELECT、課時(shí)=SUM(任課.周課時(shí))FROM課JOIN_INSERTEDON課.職工號(hào)=INSERTED.職工號(hào)IF總課時(shí)>20ROLLBACKTRANSACTIO_N參考答案一單項(xiàng)選擇題1 C2A3A4C5 C6D7D8C9 A10C11B12C13 C14A15D二填空題1 服務(wù)2 SQLServer服務(wù)SQLServerAgent服務(wù)(或填主服務(wù)、代理服務(wù))3系統(tǒng)數(shù)據(jù)庫model4主數(shù)據(jù)文件次要數(shù)據(jù)文件5.INS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論