【文章內(nèi)容簡介】
。良39。 When 70~79 THEN Grade = 39。中39。 When 60~69 THEN Grade = 39。及格39。 Else Grade = 39。不及格39。 End下列SQL語句中,用于修改表數(shù)據(jù)的語句是(C)。A、ALTER B、SELECT C、UPDATE D、INSERT設(shè)有Teachers表,該表的定義如下: CREATE TABLE Teachers(Tno CHAR(8)PRIMARY KEY, Tname VARCHAR(10)NOT NULL, Age TINYINT CHECK(Age BETWEEN 25 AND 65))下列插入語句中,不能正確執(zhí)行的是(D)。A、INSERT INTO Teachers VALUES(39。T10039。,39。張宏39。,NULL)B、INSERT INTO Teachers(Tno,Tname,Age)VALUES(39。T10039。,39。張宏39。,30)C、INSERT INTO Teachers(Tno,Tname)VALUES(39。T10039。,39。張宏39。)D、INSERT INTO Teachers VALUES(39。T10039。,39。張宏39。)設(shè)數(shù)據(jù)庫中已有教材中的Student(Sno,Sname,Ssex,Sage,Sdept)、Course(Cno,Cname,Credit,Semster)和SC(Sno,Cno,Grade)表?,F(xiàn)要查詢學生選的第2學期開設(shè)課程的情況,只需列出學號、姓名、所在系和所選的課程號。該查詢涉及到的表是(D)。A、僅Student表B、僅Student和SC表 D、Student、SC和Course表 C、僅Student和Course表下列刪除計算機系學生(在student表中)的修課記錄(在SC表中)的語句,正確的是(B)。A、DELETE FROM SC JOIN Student b ON = WHERE Sdept = 39。計算機系39。 B、DELETE FROM SC FROM SC JOIN Student b ON = WHERE Sdept = 39。計算機系39。 C、DELETE FROM Student WHERE Sdept = 39。計算機系39。 D、DELETE FROM SC WHERE Sdept = 39。計算機系39。二、判斷題SELECT * FROM Student WHERE Sname LIKE 39。張_39。語句中的39。張_39。 用于查找姓張的學生。(╳)SELECT * FROM Student WHERE Sname LIKE 39。[張李劉]%39。 語句可以查找姓張、李、劉的學生。(√)SELECT COUNT(DISTINCT Sno)FROM SC 語句用于統(tǒng)計學生的總?cè)藬?shù)。(╳)HAVING子句用于對分組后的統(tǒng)計結(jié)果再進行過濾,它用于組而不是對單個記錄。(√)SELECT * FROM Student INNER JOIN SC ON = SC連接起來。(√)三、簡答題在聚合函數(shù)中,哪個函數(shù)在統(tǒng)計時不考慮NULL。COUNT(*)在LIKE運算符中“%”的作用是什么? 匹配0個或多個字符。WHERE Age BETWEEN 20 AND 30子句,查找的Age范圍是多少? Age大于等于20并且小于等于30WHERE Sdept NOT IN(39。CS39。, 39。IS39。, 39。MA39。),查找的數(shù)據(jù)是什么? 查找39。CS39。, 39。IS39。, 39。MA39。三個系之外的其他系。自連接與普通內(nèi)連接的主要區(qū)別是什么?自連接中進行連接操作的表在物理上是一張表,而普通內(nèi)連接進行連接的表在物理上是兩張表。外連接與內(nèi)連接的主要區(qū)別是什么?進行外連接的兩個表中,可以有一張表不滿足連接條件,而進行內(nèi)連接的兩個表必須都滿足連接條件。相關(guān)子查詢與嵌套子查詢在執(zhí)行方面的主要區(qū)別是什么?相關(guān)子查詢的執(zhí)行過程是先外后內(nèi),而嵌套子查詢的執(zhí)行過程是先內(nèi)后外。而且相關(guān)子查詢中必須有與外層查詢的關(guān)聯(lián),而嵌套子查詢中,內(nèi)、外層查詢之間沒有關(guān)聯(lián)關(guān)系。對統(tǒng)計結(jié)果的篩選應該使用哪個子句完成? HAVING子句在排序子句中,排序依據(jù)列的前后順序是否重要?ORDER BY C1,C2子句對數(shù)據(jù)的排序順序是什么?重要,系統(tǒng)會按列的先后順序進行排序。先按C1列進行排序,在C1列值相同時再按C2列進行排序。TOP 子句的作用是什么?在查詢結(jié)果產(chǎn)生后,提取結(jié)果的前若干行數(shù)據(jù)。第6章習題與參考答案一、單項選擇題下列關(guān)于視圖的說法,正確的是(B)。A、視圖與基本表一樣,也存儲數(shù)據(jù)B、對視圖的操作最終都轉(zhuǎn)換為對基本表的操作 C、視圖的數(shù)據(jù)源只能是基本表D、所有視圖都可以實現(xiàn)對數(shù)據(jù)的增、刪、改、查操作在視圖的定義語句中,只能包含(A)。A、數(shù)據(jù)查詢語句 C、創(chuàng)建表的語句A、外模式 B、數(shù)據(jù)增、刪、改語句 D、全部都可以 C、模式 D、其他視圖對應數(shù)據(jù)庫三級模式中的(A)。B、內(nèi)模式下列關(guān)于視圖的說法,正確的是(B)。A、通過視圖可以提高數(shù)據(jù)查詢效率 C、視圖只能建立在基本表上創(chuàng)建視圖的主要作用是(D)。A、提高數(shù)據(jù)查詢效率 C、維護數(shù)據(jù)的一致性(D)。A、CREATE VIEW v1 AS SELECT 所在系, COUNT(*)FROM 學生表 GROUP BY 所在系 B、CREATE VIEW v1 AS SELECT 所在系, SUM(*)FROM 學生表 GROUP BY 所在系 C、CREATE VIEW v1(系名,人數(shù))AS SELECT 所在系, SUM(*)FROM 學生表 GROUP BY 所在系 D、CREATE VIEW v1(系名,人數(shù))AS SELECT 所在系, COUNT(*)FROM 學生表 GROUP BY 所在系設(shè)用戶在某數(shù)據(jù)庫中經(jīng)常需要進行如下查詢操作: SELECT * FROM T WHERE C1=39。A39。 ORDER BY C2 設(shè)T表中已在C1列上建立了主鍵約束,且該表只建有該約束。為提高該查詢的執(zhí)行效率,下列方法中可行的是(C)。A、在C1列上建立一個聚集索引,在C2列上建立一個非聚集索引 B、在C1和C2列上分別建立一個非聚集索引 C、在C2列上建立一個非聚集索引D、在C1和C2列上建立一個組合的非聚集索引下列關(guān)于索引的說法,正確的是(C)。A、只要建立了索引就可以加快數(shù)據(jù)的查詢效率 B、在一個表上可以創(chuàng)建多個聚集索引C、在一個表上可以建立多個唯一的非聚集索引 B、維護數(shù)據(jù)的完整性約束 D、提供用戶視角的數(shù)據(jù) B、視圖提供了數(shù)據(jù)的邏輯獨立性 D、定義視圖的語句可以包含數(shù)據(jù)更改語句設(shè)有學生表(學號,姓名,所在系)。下列建立統(tǒng)計每個系的學生人數(shù)的視圖語句中,正確的是D、索引會影響數(shù)據(jù)插入和更新的執(zhí)行效率,但不會影響刪除數(shù)據(jù)的執(zhí)行效率 9.創(chuàng)建存儲過程的用處主要是(A)。A、提高數(shù)據(jù)操作效率C、實現(xiàn)復雜的業(yè)務規(guī)則 B、維護數(shù)據(jù)的一致性 D、增強引用完整性 10.下列關(guān)于存儲過程的說法,正確的是(A)。A、在定義存儲過程的代碼中可以包含數(shù)據(jù)的增、刪、改、查語句 B、用戶可以向存儲過程傳遞參數(shù),但不能輸出存儲過程產(chǎn)生的結(jié)果 C、存儲過程的執(zhí)行是在客戶端完成的 D、存儲過程是存儲在客戶端的可執(zhí)行代碼段1下列修改存儲過程P1的語句,正確的是(B)。A、ALTER P1 C、MODIFY P1 A、DELETE P1 C、DROP P1 B、ALTER PROC P1 D、MODIFY PROC P1 B、DELETE PROC P1 D、DROP PROC P1 B、增強數(shù)據(jù)的安全性 D、實現(xiàn)復雜的約束1下列刪除存儲過程P1的語句,正確的是(D)。1觸發(fā)器的主要作用是(D)。A、提高數(shù)據(jù)的查詢效率 C、加強數(shù)據(jù)的保密性1現(xiàn)有學生表和修課表,其結(jié)構(gòu)為: 學生表(學號,姓名,入學日期,畢業(yè)日期)修課表(學號,課程號,考試日期,成績)現(xiàn)要求修課表中的考試日期必須在學生表中相應學生的入學日期和畢業(yè)日期之間。下列實現(xiàn)方法中,正確的是(B)。A、在修課表的考試日期列上定義一個CHECK約束 B、在修課表上建立一個插入和更新操作的觸發(fā)器 C、在學生表上建立一個插入和更新操作的觸發(fā)器 D、在修課表的考試日期列上定義一個外鍵引用約束1設(shè)在SC(Sno,Cno,Grade)表上定義了觸發(fā)器: CREATE TRIGGER tri1 ON SC AFTER INSERT … 當執(zhí)行語句:INSERT INTO SC VALUES(39。s00139。, 39。c0139。,90)會引發(fā)該觸發(fā)器執(zhí)行。下列關(guān)于觸發(fā)器執(zhí)行時表中數(shù)據(jù)的說法,正確的是(A)。A、SC表和INSERTED表中均包含新插入的數(shù)據(jù) B、SC表和INSERTED表中均不包含新插入的數(shù)據(jù)C、SC表中包含新插入的數(shù)據(jù),INSERTED表中不包含新插入的數(shù)據(jù) D、SC表中不包含新插入的數(shù)據(jù),INSERTED表中包含新插入的數(shù)據(jù)1當執(zhí)行由UPDATE語句引發(fā)的觸發(fā)器時,下列關(guān)于該觸發(fā)器臨時工作表的說法,正確的是(C)。A、系統(tǒng)會自動產(chǎn)生UPDATED表來存放更改前的數(shù)據(jù) B、系統(tǒng)會自動產(chǎn)生UPDATED表來存放更改后的數(shù)據(jù)C、系統(tǒng)會自動產(chǎn)生INSERTED表和DELETED表,用INSERTED表存放更改后的數(shù)據(jù),用DELETED 表存放更改前的數(shù)據(jù)D、系統(tǒng)會自動產(chǎn)生INSERTED表和DELETED表,用INSERTED表存放更改前的數(shù)據(jù),用DELETED表存放更改后的數(shù)據(jù)二、判斷題視圖是一個虛表,數(shù)據(jù)庫中只存儲視圖的定義,而不存儲視圖所包含的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。(√)當基本表中的數(shù)據(jù)發(fā)生變化時,從視圖中查詢出的數(shù)據(jù)并不隨之變化。(╳)SQL Server中的索引一般采用B樹結(jié)構(gòu)。(√)使用索引的一個優(yōu)點是,在對數(shù)據(jù)進行插入、更改和刪除操作時,不需要對索引進行相應維護,就可以使索引與數(shù)據(jù)保持一致。(╳)由于聚集索引項決定了表中數(shù)據(jù)的物理存儲順序,因此一個表只能包含一個聚集索引。(√)非聚集索引并不改變數(shù)據(jù)的物理存儲順序,可以在一個表上建立多個非聚集索引。(√)存儲過程是存儲在數(shù)據(jù)庫服務器端供客戶端調(diào)用執(zhí)行的SQL語句。(√)如果存儲過程有輸入?yún)?shù)并且沒有為輸入?yún)?shù)指定默認值,則在調(diào)用存儲過程時,會自動生成一個常量值。(╳)9.UPDATE、INSERT和DELETE都可引發(fā)觸發(fā)器代碼的執(zhí)行。(√)10.觸發(fā)器名在數(shù)據(jù)庫中可以不是唯一的。(╳)三、簡答題試說明使用視圖的好處。利用視圖可以簡化客戶端的數(shù)據(jù)查詢語句,使用戶能從多角度看待同一數(shù)據(jù),可以提高數(shù)據(jù)的安全性,視圖對應數(shù)據(jù)庫三級模式中的外模式,因此提供了一定程度的邏輯獨立性。使用視圖可以加快數(shù)據(jù)的查詢速度,這句話對嗎?為什么?不對,因為通過視圖查詢數(shù)據(jù)時,比直接針對基本表查詢數(shù)據(jù)多了一個轉(zhuǎn)換過程,即從外模式到模式的轉(zhuǎn)換。索引的作用是什么? 索引可以加快數(shù)據(jù)的查詢效率。索引分為哪幾種類型?分別是什么?它們的主要區(qū)別是什么?分為聚集索引和非聚集索引兩種。聚集索引會對數(shù)據(jù)進行物理排序,非聚集索引不對數(shù)據(jù)進行物理排序。聚集索引一定是唯一索引,對嗎?反之呢? 不對。反之也不對。在建立聚集索引時,數(shù)據(jù)庫管理系統(tǒng)首先要將數(shù)據(jù)按聚集索引列進行物理排序,對嗎? 對。不管對表進行什么類型的操作,在表上建立的索引越多越能提高操作效率,對嗎? 不對。存儲過程的作用是什么?為什么利用存儲過程可以提高數(shù)據(jù)的操作效率? 存儲過程可以提供模塊化程序設(shè)計,提高數(shù)據(jù)操作效率,簡化客戶端編程。因為數(shù)據(jù)庫管理系統(tǒng)是在創(chuàng)建存儲過程時對SQL代碼進行分析和優(yōu)化,并在第一次執(zhí)行時進行語法檢查和編譯,將編譯好的可執(zhí)行代碼存儲在內(nèi)存的一個專門緩沖區(qū)中,以后再執(zhí)行此存儲過程時,只需直接執(zhí)行內(nèi)存中的可執(zhí)行代碼即可。存儲過程的參數(shù)有幾種形式?存儲過程的參數(shù)有輸入?yún)?shù)和輸出參數(shù)兩種。觸發(fā)器的作用是什么?前觸發(fā)和后觸發(fā)的主要區(qū)別是什么? 觸發(fā)器可以實現(xiàn)復雜的完整性約束,同時還可以實現(xiàn)一些商業(yè)規(guī)則。前觸發(fā)器并不真正執(zhí)行引發(fā)觸發(fā)器執(zhí)行才數(shù)據(jù)操作語句;后觸發(fā)器是在引發(fā)觸發(fā)器執(zhí)行的數(shù)據(jù)操作語句執(zhí)行完后,再引發(fā)觸發(fā)器執(zhí)行。1插入操作產(chǎn)生的臨時工作表叫什么?它存放的是什么數(shù)據(jù)? 插入操作產(chǎn)生的臨時工作表叫INSERTED,用于存放新插入的數(shù)據(jù)。1刪除操作產(chǎn)生的臨時工作表叫什么?它存放的是什么數(shù)據(jù)? 刪除操作產(chǎn)生的臨時工作表叫DELETED,用于存放被刪除的數(shù)據(jù)。1更改操作產(chǎn)生的兩個臨時工作表分別叫什么?它們分別存放的是什么數(shù)據(jù)? 更改操作產(chǎn)生的一個臨時工作表叫INSERTED:用于存放更新后的數(shù)據(jù);更改操作產(chǎn)生的另一個臨時工作表叫DELETED:用于存放更新前的數(shù)據(jù)。第7章習題與參考答案一、單項選擇題下列不屬于事務特征的是(A)。A、完整性 B、一致性 C、隔離性 D、原子性事務一旦提交,其對數(shù)據(jù)庫中數(shù)據(jù)的修改就是永久的,以后的操作或故障不會對事務的操作結(jié)果產(chǎn)生任何影響。這個特性是事務的(D)。A、原子性 B、一致性 C、隔離性 D、持久性下列關(guān)于SQL Server備份設(shè)備的說法,正確的是(B)。A、備份設(shè)備可以是磁盤上的一個文件 B、備份設(shè)備是一個邏輯設(shè)備,它只能建立在磁盤上 C、備份設(shè)備是一臺物理存在的有特定要求的設(shè)備 D、一個備份設(shè)備只能用于一個數(shù)據(jù)庫的一次備份在簡單恢復模式下,可以進行的備份是(C)。A、僅完整備份B、僅事務日志備份 D、完整備份、差異備份和日志備份 C、僅完整備份和差異備份下列關(guān)于差異備份的說法,正確的是(B)。A、差異備份備份的是從上次備份到當前時間數(shù)據(jù)庫變化的內(nèi)容 B、差異備份備份的是從上次