數據庫原理及應用(第2版)參考答案 何玉潔_第1頁
數據庫原理及應用(第2版)參考答案 何玉潔_第2頁
數據庫原理及應用(第2版)參考答案 何玉潔_第3頁
數據庫原理及應用(第2版)參考答案 何玉潔_第4頁
數據庫原理及應用(第2版)參考答案 何玉潔_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、·45·數據庫原理及應用(第2版)習題參考答案第1章 數據概述一選擇題1下列關于數據庫管理系統的說法,錯誤的是 CA數據庫管理系統與操作系統有關,操作系統的類型決定了能夠運行的數據庫管理系統的類型B數據庫管理系統對數據庫文件的訪問必須經過操作系統實現才能實現C數據庫應用程序可以不經過數據庫管理系統而直接讀取數據庫文件D數據庫管理系統對用戶隱藏了數據庫文件的存放位置和文件名2下列關于用文件管理數據的說法,錯誤的是 DA用文件管理數據,難以提供應用程序對數據的獨立性B當存儲數據的文件名發生變化時,必須修改訪問數據文件的應用程序C用文件存儲數據的方式難以實現數據訪問的安全控制D將

2、相關的數據存儲在一個文件中,有利于用戶對數據進行分類,因此也可以加快用戶操作數據的效率3下列說法中,不屬于數據庫管理系統特征的是 CA提供了應用程序和數據的獨立性B所有的數據作為一個整體考慮,因此是相互關聯的數據的集合C用戶訪問數據時,需要知道存儲數據的文件的物理信息D能夠保證數據庫數據的可靠性,即使在存儲數據的硬盤出現故障時,也能防止數據丟失5在數據庫系統中,數據庫管理系統和操作系統之間的關系是 DA相互調用B數據庫管理系統調用操作系統C操作系統調用數據庫管理系統D并發運行6數據庫系統的物理獨立性是指 DA不會因為數據的變化而影響應用程序B不會因為數據存儲結構的變化而影響應用程序C不會因為數

3、據存儲策略的變化而影響數據的存儲結構D不會因為數據邏輯結構的變化而影響應用程序7數據庫管理系統是數據庫系統的核心,它負責有效地組織、存儲和管理數據,它位于用戶和操作系統之間,屬于 AA系統軟件B工具軟件C應用軟件D數據軟件8數據庫系統是由若干部分組成的。下列不屬于數據庫系統組成部分的是 BA數據庫B操作系統C應用程序D數據庫管理系統9下列關于客戶/服務器結構和文件服務器結構的描述,錯誤的是 DA客戶/服務器結構將數據庫存儲在服務器端,文件服務器結構將數據存儲在客戶端B客戶/服務器結構返回給客戶端的是處理后的結果數據,文件服務器結構返回給客戶端的是包含客戶所需數據的文件C客戶/服務器結構比文件服

4、務器結構的網絡開銷小D客戶/服務器結構可以提供數據共享功能,而用文件服務器結構存儲的數據不能共享數據庫是相互關聯的數據的集合,它用綜合的方法組織數據,具有較小的數據冗余,可供多個用戶共享,具有較高的數據獨立性,具有安全控制機制,能夠保證數據的安全、可靠,允許并發地使用數據庫,能有效、及時地處理數據,并能保證數據的一致性和完整性。10下列關于數據庫技術的描述,錯誤的是 BA數據庫中不但需要保存數據,而且還需要保存數據之間的關聯關系B由于數據是存儲在磁盤上的,因此用戶在訪問數據庫數據時需要知道數據的存儲位置C數據庫中數據存儲結構的變化不會影響到應用程序D 數據庫中的數據具有較小的數據冗余二填空題1

5、數據管理的發展主要經歷了_和_兩個階段。文件管理 數據庫管理2在利用數據庫技術管理數據時,所有的數據都被_統一管理。數據庫管理系統3數據庫管理系統提供的兩個數據獨立性是_獨立性和_獨立性。 物理 邏輯4數據庫系統能夠保證進入到數據庫中的數據都是正確的數據,該特征稱為_。數據完整性5在客戶/服務器結構中,數據的處理是在_端完成的。 服務器6數據庫系統就是基于數據庫的計算機應用系統,它主要由_、_和_三部分組成。數據庫、數據庫管理系統和應用程序7與用數據庫技術管理數據相比,文件管理系統的數據共享性_,數據獨立性_。 差 低8在數據庫技術中,當表達現實世界的信息內容發生變化時,可以保證不影響應用程序

6、,這個特性稱為_。邏輯獨立性9當數據庫數據由于機器硬件故障而遭到破壞時,數據庫管理系統提供了將數據庫恢復到正確狀態,并盡可能使數據不丟失的功能,這是數據庫管理系統的_特性保證的。可靠性10數據庫中的數據是相互關聯的數據集合,具有較小的數據冗余,可供多個用戶共享,具有較高的數據獨立性,且具有安全性和可靠性,這些特征都是由_保證的。 數據庫管理系統第2章 數據模型與數據庫系統結構一選擇題1數據庫三級模式結構的劃分,有利于AA. 數據的獨立性 B. 管理數據庫文件C. 建立數據庫 D. 操作系統管理數據庫2在數據庫的三級模式中,描述數據庫中全體數據的邏輯結構和特征的是BA內模式 B.模式 C. 外模

7、式 D. 其他3數據庫系統中將數據分為三個模式,從而提供了數據的獨立性,下列關于數據邏輯獨立性的說法,正確的是CA. 當內模式發生變化時,模式可以不變B. 當內模式發生變化時,應用程序可以不變C. 當模式發生變化時,應用程序可以不變D. 當模式發生變化時,內模式可以不變4為最大限度地保證數據庫數據的正確性,關系數據庫實現了三個完整性約束,下列用于保證實體完整性的是BA. 外碼B.主碼C. CHECK約束D. UNIQUE約束5下列關于關系中主屬性的描述,錯誤的是DA. 主碼所包含的屬性一定是主屬性B. 外碼所引用的屬性一定是主屬性C. 候選碼所包含的屬性都是主屬性D. 任何一個主屬性都可以唯一

8、地標識表中的一行數據6設有關系模式銷售(顧客號,商品號,銷售時間,銷售數量),若允許一個顧客在不同時間對同一個產品購買多次,則此關系模式的主碼是DA顧客號B產品號C(顧客號,商品號)D(顧客號、商品號、銷售時間)7關系數據庫用二維表來存儲數據。下列關于關系表中記錄的說法,正確的是BA順序很重要,不能交換B順序不重要C按輸入數據的順序排列D一定是有序的8下列模式中,用于描述單個用戶數據視圖的是CA內模式B概念模式C外模式D存儲模式9在利用概念層數據模型描述數據時,一般要求模型要滿足三個要求。下列描述中,不屬于概念層數據模型應滿足的要求的是AA能夠描述并發數據B能夠真實地模擬現實世界C容易被業務人

9、員理解D能夠方便地在計算機上實現10數據模型三要素是指BA數據結構、數據對象和數據共享B數據結構、數據操作和數據完整性約束C數據結構、數據操作和數據的安全控制D數據結構、數據操作和數據的可靠性11下列關于實體聯系模型中聯系的說法,錯誤的是DA一個聯系可以只與一個實體有關B一個聯系可以與兩個實體有關C一個聯系可以與多個實體有關D一個聯系也可以不與任何實體有關12數據庫系統中的三級模式以及模式間的映像提供了數據的獨立性。下列關于兩級映像的說法,正確的是CA外模式到模式的映像是由應用程序實現的,模式到內模式的映像是由DBMS實現的B外模式到模式的映像是由DBMS實現的,模式到內模式的映像是由應用程序

10、實現的C外模式到模式的映像以及模式到內模式的映像都是由DBMS實現的D外模式到模式的映像以及模式到內模式的映像都是由應用程序實現的13下列不屬于數據完整性約束的是DA實體完整性B參照完整性C域完整性D數據操作完整性14下列關于關系操作的說法,正確的是AA關系操作是非過程化的B在進行關系操作時,用戶需要知道數據的存儲位置C在進行關系操作時,用戶需要知道數據的存儲結構D用戶可以在關系上直接進行行定位操作14下列關于概念層數據模型的說法,錯誤的是CA概念層數據模型應該采用易于用戶理解的表達方式B概念層數據模型應該比較易于轉換成組織層數據模型C在進行概念層數據模型設計時,需要考慮具體的DBMS的特點D

11、在進行概念層數據模型設計時,重點考慮的內容是用戶的業務邏輯15下列關于外碼的說法,正確的是CA外碼必須與其所引用的主碼同名B外碼列不允許有空值C外碼和所引用的主碼名字可以不同,但語義必須相同D外碼的取值必須要與所引用關系中主碼的某個值相同16下列關于關系的說法,錯誤的是DA關系中的每個屬性都是不可再分的基本屬性B關系中不允許出現值完全相同的元組C關系中不需要考慮元組的先后順序D關系中屬性順序的不同,關系所表達的語義也不同二填空題1數據庫可以最大限度地保證數據的正確性,這在數據庫中被稱為_。 數據完整性2實體-聯系模型主要包含_、_和_三部分內容。實體 屬性 聯系3如果實體A與實體B是一對多聯系

12、,則實體B中的一個實例最多可對應實體A中的_實例。一個4數據完整性約束包括_完整性、_完整性和_完整性。 實體 參照 用戶定義5關系數據模型的組織形式是_。 二維表6數據庫系統的_和_之間的映像,提供了數據的物理獨立性。7數據的邏輯獨立性是指當_變化時可以保持_不變。 內模式 模式8數據模型三要素包括_、_和_。數據結構 數據操作 數據完整性約束9實體聯系模型屬于_層數據模型,它與具體的DBMS_。概念 無關10關系操作的特點是基于_的操作。 集合11當數據的物理存儲位置發生變化時,通過調整_映像,可以保證_不變化,從而保證數據的物理獨立性。 模式/內模式 模式12參照完整性約束是通過_保證的

13、。 外碼第3章 SQL語言基礎及數據定義功能一選擇題1下列關于SQL語言特定的敘述,錯誤的是 BA使用SQL語言訪問數據庫,用戶只需提出做什么,而無需描述如何實現BSQL語言比較復雜,因此在使用上比較難CSQL語言可以在數據庫管理系統提供的應用程序中執行,也可以在DOS環境下執行D使用SQL語言可以完成任何數據庫操作2下列所述功能中,不屬于SQL語言功能的是 DA數據庫和表的定義功能 B數據查詢功能C數據增、刪、改功能D提供方便的用戶操作界面功能3設某職工表中有用于存放年齡(整數)的列,下列類型中最合適年齡列的是 CAint BsmallintCtinyintDbit4SQL Server數據

14、庫是由文件組成的。下列關于數據庫所包含的文件的說法,正確的是 DA一個數據庫可包含多個主數據文件和多個日志文件B一個數據庫只能包含一個主數據文件和一個日志文件C一個數據庫可包含多個次要數據文件,但只能包含一個日志文件D一個數據庫可包含多個次要數據文件和多個日志文件5在SQL Server中創建用戶數據庫,其主數據文件的大小必須大于 BAmaster數據庫的大小Bmodel數據庫的大小Cmsdb數據庫的大小D3MB6在SQL Server系統數據庫中,存放用戶數據庫公共信息的是 DAmasterBmodelCmsdb數據庫的大小Dtempdb7在SQL Server中創建用戶數據庫實際就是定義數

15、據庫所包含的文件以及文件的屬性。下列不屬于數據庫文件屬性的是 CA初始大小B物理文件名C文件結構D 最大大小8在SQL Server中創建用戶數據庫實際就是定義數據庫所包含的文件以及文件的屬性。下列不屬于數據庫文件屬性的是 CA初始大小B物理文件名C文件結構D 最大大小9下列約束中用于限制列的取值范圍的約束是 BAPRIMARY KEYBCHECKCDEFAULTD UNIQUE10下列約束中用于限制列的取值不重的約束是 DAPRIMARY KEYBCHECKCDEFAULTD UNIQUE11下列約束中用于實現實體完整性的約束是 AAPRIMARY KEYBCHECKCDEFAULTD UN

16、IQUE12下列關于DEFAULT約束的說法,錯誤的是 DA一個DEFAULT約束只能約束表中的一個列B在一個表上可以定義多個DEFAULT約束CDEFAULT只能定義在列級完整性約束處D在列級完整性約束和表級完整性約束處都可以定義DEFAULT約束第 4 章 數據操作語句一 選擇題1 當關系R和S進行連接操作時,如果R中的元組不滿足連接條件,在連接結果中也會將這些記錄保留下來的操作是 AA左外連接 B右外連接C內連接D自連接2 設在某SELECT語句的WHERE子句中,需要對Grade列的空值進行處理。下列關于空值的操作,錯誤的是CAGrade IS NOT NULL BGrade IS N

17、ULLCGrade = NULLDNOT (Grade IS NULL)3 下列聚合函數中,不忽略空值的是DASUM(列名) BMAX(列名)CAVG(列名)DCOUNT(*)4SELECT INTO FROM語句的功能是AA 將查詢結果插入到一個新表中B 將查詢結果插入到一個已建好的表中C 合并查詢的結果D 向已存在的表中添加數據5下列利用SC表的查詢語句中,錯誤的是BA SELECT Sno, COUNT(*) FROM SC GROUP BY SnoB SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*) > 3C SELECT Sno FR

18、OM SC GROUP BY Sno HAVING COUNT(*) > 3D SELECT Sno FROM SC GROUP BY Sno 6現要利用Student表查詢年齡最小的學生姓名和年齡。下列實現此功能的查詢語句中,正確的是DA SELECT Sname, MIN(Sage) FROM StudentB SELECT Sname, Sage FROM Student WHERE Sage = MIN(Sage)C SELECT TOP 1 Sname, Sage FROM Student D SELECT TOP 1 Sname, Sage FROM Student ORDE

19、R BY Sage 7設SC表中記錄成績的列為:Grade,類型為int。若在查詢成績時,希望將成績按優、良、中、及格和不及格形式顯示,正確的Case函數是CA. Case GradeWhen 90100 THEN '優'When 8089 THEN '良'When 7079 THEN '中'When 6069 THEN '及格'Else '不及格'EndB. Case When Grade between 90 and 100 THEN Grade = '優'When Grade between

20、80 and 89 THEN Grade = '良'When Grade between 70 and 79 THEN Grade = '中'When Grade between 60 and 69 THEN Grade = '及格'Else Grade = '不及格'EndC. Case When Grade between 90 and 100 THEN '優'When Grade between 80 and 89 THEN '良'When Grade between 70 and 79 TH

21、EN '中'When Grade between 60 and 69 THEN '及格'Else '不及格'EndD. Case GradeWhen 90100 THEN Grade = '優'When 8089 THEN Grade = '良'When 7079 THEN Grade = '中'When 6069 THEN Grade = '及格'Else Grade = '不及格' End8下述語句的功能是將兩個查詢結果合并為一個結果。其中正確的是BAselect

22、 sno,sname,sage from student where sdept = 'cs' Order by sage Unionselect sno,sname,sage from student where sdept = 'is' Order by sage Bselect sno,sname,sage from student where sdept = 'cs' Unionselect sno,sname,sage from student where sdept = 'is'Order by sageCselect

23、 sno,sname,sage from student where sdept = 'cs' Unionselect sno,sname from student where sdept = 'is'Order by sageDselect sno,sname,sage from student where sdept = 'cs' Order by sage Unionselect sno,sname,sage from student where sdept = 'is'9下列SQL語句中,用于修改表數據的語句是CAALTE

24、R BSELECTCUPDATEDINSERT10設有Teachers表,該表的定義如下:CREATE TABLE Teachers( Tno CHAR(8) PRIMARY KEY, Tname VARCHAR(10) NOT NULL, Age TINYINT CHECK(Age BETWEEN 25 AND 65) )下列插入語句中,不能正確執行的是DAINSERT INTO Teachers VALUES('T100','張鴻',NULL)BINSERT INTO Teachers(Tno,Tname,Age) VALUES('T100'

25、,'張鴻',30)CINSERT INTO Teachers(Tno,Tname) VALUES('T100','張鴻')DINSERT INTO TeachersVALUES('T100','張鴻')11設數據庫中已有表4-1至4-3所示的Student、Course和SC表。現要查詢學生選的第2學期開設課程的情況,只需列出學號、姓名、所在系和所選的課程號。該查詢涉及到的表是DA僅Student表 B僅Student和SC表C僅Student和Course表DStudent、SC和Course表12刪除計算機系學

26、生(在student表中)的修課記錄(在SC表中)的正確的語句是表是BADELETE FROM SC JOIN Student b ON S.Sno = b.Sno WHERE Sdept = '計算機系'BDELETE FROM SC FROM SC JOIN Student b ON SC.Sno = b.Sno WHERE Sdept = '計算機系'CDELETE FROM Student WHERE Sdept = '計算機系'DDELETE FROM SC WHERE Sdept = '計算機系'二 填空題1 在相關子

27、查詢中,子查詢的執行次數是由_決定的。外層表的行數2 對包含基于集合測試子查詢的查詢語句,是先執行_層查詢,在執行_層查詢。內,外3 對包含相關子查詢的查詢語句,是先執行_層查詢,在執行_層查詢。外,內4 聚合函數COUNT(*)是按_統計數據個數。行5 設Grade列目前有三個值:90、80和NULL,則AVG(Grade)的值是_,MIN(Grade)的值是_。85,806 設有學生表(學號,姓名,所在系)和選課表(學號,課程號,成績),現要建立統計每個系的選課人數。請補全下列語句: COUNT(DISTINCT 選課表.學號)SELECT 所在系, _ FROM 選課表 JOIN 學生表

28、 ON 選課表.學號 = 學生表.學號 GROUP BY 所在系 7 設有選課表(學號,課程號,成績),現要查詢考試成績最高的三個學生的學號、課程號和成績,包括并列情況。請補全下列語句: TOP 3 WITH TIES, ORDER BY 成績 DESCSELECT _ 學號,課程號,成績 FROM 選課表 _8 UNION操作用于合并多個查詢語句的結果,如果在合并結果時不希望去掉重復的數據,則在用UNION操作時應使用_關鍵字。ALL9 進行自連接操作的兩個表在物理上為一張表。通過_方法可將物理上的一張表在邏輯上成為兩張表。起別名10 FROM A LEFT JOIN B ON 語句表示在連

29、接結果中不限制_表數據必須滿足連接條件。A11 對分組后的統計結果再進行篩選使用的子句是_。HAVING12 若SELECT語句中同時包含WHERE子句和GROUP子句,則先執行的是_子句。WHERE三 簡答題1. 在聚合函數中,哪個函數在統計時不考慮NULL。答:COUNT(*)2. 在LIKE運算符中“%”的作用是什么?答:匹配0個或多個字符。3. WHERE Age BETWEEN 20 AND 30子句,查找的Age范圍是多少?答:Age大于等于20并且小于等于304. WHERE Sdept NOT IN (CS,IS,MA),查找的數據是什么?答:查找CS,IS,MA三個系之外的其

30、他系5. 自連接與普通內連接的主要區別是什么?答:自連接中進行連接操作的表在物理上是一張表,而普通內連接進行連接的表在物理上是兩張表。6. 外連接與內連接的主要區別是什么?答:進行外連接的兩個表中,可以有一張表不滿足連接條件,而進行內連接的兩個表必須都滿足連接條件。7. 在使用UNION合并多個查詢語句的結果時,對各個查詢語句的要求是什么?答:各個查詢語句的列個數必須相同,對應列的語義相同,類型兼容。8. 相關子查詢與嵌套子查詢在執行方面的主要區別是什么?答:相關子查詢的執行過程是先外后內,而嵌套子查詢的執行過程是先內后外。而且相關子查詢中必須有與外層查詢的關聯,而嵌套子查詢中,內、外層查詢之

31、間沒有關聯關系。9. 執行SELECT INOT 表名 FROM 語句時,對表名的要求是什么?答:必須是一個不存在的新表名。10. 對統計結果的篩選應該使用哪個子句完成?答:使用HAVING子句11. 在排序子句中,排序依據列的前后順序是否重要?ORDER BY C1,C2子句對數據的排序順序是什么?答:重要,系統會按列的先后順序進行排序。先按C1列進行排序,在C1列值相同時再按C2列進行排序。12. TOP 子句的作用是什么?答:在查詢結果產生后,提取結果的前若干行數據。四上機練習1查詢學生選課表中的全部數據。答:select * from SC2查詢計算機系的學生的姓名、年齡。答:sele

32、ct sname,sage from student where sdept = '計算機系'3. 查詢成績在7080分之間的學生的學號、課程號和成績。答:select sno,cno,grade from sc on where grade between 70 and 804 查詢計算機系年齡在1820之間且性別為“男”的學生的姓名、年齡。答:select sname,sage from student where sdept = '計算機系' and sage between 18 and 20 and ssex = '男'5 查詢“C00

33、1”號課程的最高分。答:select max(grade) from sc where cno = 'C001'6. 查詢計算機系學生的最大年齡和最小年齡。答:select max(sage) as max_age, min(sage) as min_age from student where sdept = '計算機系'7. 統計每個系的學生人數。答:select sdept,count(*) from student group by sdept8. 統計每門課程的選課人數和考試最高分。答:select cno, count(*),max(grade) f

34、rom sc group by cno9. 統計每個學生的選課門數和考試總成績,并按選課門數升序顯示結果。答:select sno,count(*), sum(grade) from sc group by sno order by count(*) asc10. 查詢總成績超過200分的學生,要求列出學號和總成績。答:select sno,sum(grade) from sc group by sno having sum(grade) > 20011. 查詢選課門數超過2門的學生的學號、平均成績和選課門數。答:select sno, avg(grade), count(*) from

35、 sc having count(*) > 212. 查詢選了“C002”課程的學生的姓名和所在系。答:select sname,sdept from student s join sc on s.sno = sc.sno where cno = 'C002'13. 查詢成績80分以上的學生的姓名、課程號和成績,并按成績降序排列結果。答:select sname,cno,grade from student s join sc on s.sno = sc.sno where grade > 80 order by grade desc14. 查詢計算機系男生修了“數

36、據庫基礎”的學生的姓名、性別和成績。答:select sname,ssex,grade from student s join sc on s.sno = sc.sno join course c on o = owhere sdept = '計算機系' and ssex = '男' and cname = '數據庫基礎'15. 查詢學生的選課情況,要求列出每位學生的選課情況(包括未選課的學生),并列出學生的學號、姓名、課程號和考試成績。答:select s.sno,sname,cno,grade from student s left join

37、 sc on s.sno = sc.sno16. 查詢哪些課程沒有人選,要求列出課程號和課程名。答:select o,cname from course c left join sc on o = owhere o is null17查詢計算機系沒有選課的學生,列出學生姓名。答:select sname from student s left join sc on s.sno = sc.sno Where sdept = '計算機系' and sc.sno is null18. 列出“數據庫基礎”課程考試成績前三名的學生的學號、姓名、所在系和考試成績。答:select top

38、3 s.sno, sname, sdept, grade from Student s join SC on s.Sno = SC.Sno join Course c on c.Cno = SC.Cno where cname = '數據庫基礎' order by grade desc19查詢VB考試成績最低的學生的姓名、所在系和VB成績。答:select top 1 with ties sname,sdept,grade from student s join sc on s.sno = sc.sno join course c on o = o where cname =

39、'VB' order by grade asc 20. 查詢有考試成績的所有學生的姓名、修課名稱及考試成績,要求將查詢結果放在一張新的永久表中,假設新表名為new_sc。答:select sname, cname, grade into new_sc from student s join sc on s.sno = sc.sno join course c on o = o where grade is not null21. 分別查詢信息管理系和計算機系的學生的姓名、性別、修課名稱、修課成績,并要求將這兩個查詢結果合并成一個結果集,并以系名、姓名、性別、修課名稱、修課成績的

40、順序顯示各列。答:select sdept 系名, sname 姓名, ssex 性別, cname 修課名稱, grade 修課成績 from student s join sc on s.sno=sc.sno join course c on o=o where sdept = '信息管理系'UNIONselect sdept , sname, ssex, cname, grade from student s join sc on s.sno=sc.sno join course c on o=o where sdept = '計算機系'22查詢選了VB的

41、學生學號、姓名、所在系和成績,并對所在系進行如下處理: 當所在系為“計算機系”時,顯示“CS”; 當所在系為“信息管理系”時,顯示“IS”; 當所在系為“通信工程系”時,顯示“CO”;對其他系,均顯示“OTHER”。答:select s.sno 學號,sname 姓名, case sdept when '計算機系' then 'CS' when '信息系' then 'IS' when '數學系' then 'CO' else 'OTHER' end as 所在系,grade 成績

42、from student s join sc on s.sno = sc.sno join course c on o = o where cname = 'vb'23. 用子查詢實現如下查詢:(1)查詢選了“C001”課程的學生姓名和所在系。答:select sname,sdept from student where sno in( select sno from sc where cno = ' C001')(2)查詢通信工程系成績80分以上的學生學號和姓名。答:select sno,sname from student where sno in( sel

43、ect sno from sc where grade > 80) and sdept = '通信工程系'(3)查詢計算機系考試成績最高的學生姓名。答:select sname from student s join sc on s.sno = sc.sno where sdept = '計算機系' and grade = (select max(grade) from sc join student s on s.sno = sc.snowhere sdept = '計算機系')(4)查詢年齡最大的男生的姓名和年齡。答:select sn

44、ame,sage from student Where sage = (select max(sage) from student and ssex = '男') and ssex = '男'(5)查詢“C001”課程的考試成績高于“C001”課程的平均成績的學生的學號和“C001”課程成績。答:select sno,grade from sc where cno = ' C001' And grade > (select avg(grade) from sc where cno = ' C001') 24. 創建一個新表,

45、表名為test_t,其結構為:(COL1, COL 2, COL 3),其中:COL1:整型,允許空值。COL2:字符型,長度為10 ,不允許空值。COL3:字符型,長度為10 ,允許空值。試寫出按行插入如下數據的語句(空白處表示空值)。COL1COL2COL3B11B2C22B3答:create table test_t ( COL1 int, COL2 char(10) not null, COL3 char(10) )insert into test_t values(NULL, 'B1', NULL)insert into test_t values(1, 'B

46、2', 'C2')insert into test_t(COL1, COL2) values(2, 'B3')25. 將 “C001”課程的考試成績加10分。答:update sc set grade = grade + 10 where cno = 'C001'26. 將計算機系所有選修了“計算機文化學”課程的學生成績加10分,分別用子查詢和多表連接形式實現。答:(1)子查詢update sc set grade = grade + 10 where sno in( select sno from student where sdept

47、 = '計算機系') and cno in(select cno from course where cname = '計算機文化學')(2)多表連接update sc set grade = grade + 10 from sc join student s on sc.sno = s.sno join course c on o = o where sdept = '計算機系' and canem = '計算機文化學'27. 刪除修課成績小于50分的學生的選課記錄。答:delete from sc where grade &l

48、t; 5028. 刪除信息管理系考試成績小于50分的學生的該門課程的修課紀錄,分別用子查詢和多表連接形式實現。答:(1) 用連接查詢實現 delete from sc from sc join student s on s.sno=sc.sno where sdept = '信息管理系' and grade < 50 (2)用子查詢實現 delete from sc where sno in ( select sno from student where sdept = '信息管理系' ) and grade < 5029刪除VB考試成績最低的學生的

49、VB修課記錄。答:delete from sc where grade = ( select min(grade) from sc join course c on o = o where cname = 'vb') and cno in( select cno from course where cname = 'vb')第5章 視圖和索引一 選擇題1下列關于視圖的說法,正確的是 BA視圖與基本表一樣,也存儲數據 B對視圖的操作最終都轉換為對基本表的操作C視圖的數據源只能是基本表D所有視圖都可以實現對數據的增、刪、改、查操作2在視圖的定義語句中,只能包含AA數

50、據查詢語句B數據增、刪、改語句C創建表的語句D全部都可以3視圖對應數據庫三級模式中的_。A. 外模式 B. 內模式 C. 模式 D. 其他4下列關于通過視圖更新數據的說法,錯誤的是 AA如果視圖的定義涉及到多張表,則對這種視圖一般情況下允許進行更新操作B如果定義視圖的查詢語句中含有GROUP BY子句,則對這種視圖不允許進行更新操作C如果定義視圖的查詢語句中含有統計函數,則對這種視圖不允許進行更新操作D如果視圖數據來自單個基本表的行、列選擇結果,則一般情況下允許進行更新操作5下列關于視圖的說法,正確的是BA通過視圖可以提高數據查詢效率B視圖提供了數據的邏輯獨立性C視圖只能建立在基本表上D定義視

51、圖的語句可以包含數據更改語句6創建視圖的主要作用是DA提高數據查詢效率B維護數據的完整性約束C維護數據的一致性D提供用戶視角的數據7建立索引可以加快數據的查詢效率。在數據庫的三級模式結構中,索引屬于 AA內模式B模式C外模式D概念模式8設有學生表(學號,姓名,所在系)。下列建立統計每個系的學生人數的視圖語句中,正確的是 DACREATE VIEW v1 AS SELECT 所在系, COUNT(*) FROM 學生表 GROUP BY 所在系 BCREATE VIEW v1 AS SELECT 所在系, SUM(*) FROM 學生表 GROUP BY 所在系CCREATE VIEW v1(系

52、名,人數) AS SELECT 所在系, SUM(*) FROM 學生表 GROUP BY 所在系DCREATE VIEW v1(系名,人數) AS SELECT 所在系, COUNT(*) FROM 學生表 GROUP BY 所在系9設用戶在某數據庫中經常需要進行如下查詢操作:ASELECT * FROM T WHERE C1=A ORDER BY C2 設T表中已在C1列上建立了主碼約束,且該表只建有該約束。為提高該查詢的執行效率,下列方法中可行的是CA在C1列上建立一個聚集索引,在C2列上建立一個非聚集索引B在C1和C2列上分別建立一個非聚集索引C在C2列上建立一個非聚集索引D在C1和C2列上建立一個組合的非聚集索引10下列關于索引的說法,正確的是CA只要建立了索引就可以加快數據的查詢效率B當一個表上需要創建聚集和非聚集索引時,應該先創建非聚集索引,然后再創建聚集索引,這種順序會使創建索引的效率比較高C在一個表上可以建立多個唯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論