日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

《数据库原理与应用》(第三版) 第7章 索引和视图 基础 习题参考答案

發(fā)布時間:2024/5/7 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《数据库原理与应用》(第三版) 第7章 索引和视图 基础 习题参考答案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.索引的作用是什么?
答:索引可以加快數(shù)據(jù)的查詢效率。

2.索引分為哪幾種類型?分別是什么?它們的主要區(qū)別是什么?
答:分為聚集索引和非聚集索引兩種。聚集索引會對數(shù)據(jù)進(jìn)行物理排序,非聚集索引不對數(shù)據(jù)進(jìn)行物理排序。

3.在一個表上可以創(chuàng)建幾個聚集索引?可以創(chuàng)建多個非聚集索引嗎?
答:1個聚集索引??梢浴?/p>

4.聚集索引一定是唯一性索引,對嗎?反之呢?
答:不對。反之也不對。

5.在建立聚集索引時,數(shù)據(jù)庫管理系統(tǒng)是真正將數(shù)據(jù)按聚集索引列進(jìn)行物理排序。對嗎?
答:對。

6.在建立非聚集索引時,數(shù)據(jù)庫管理系統(tǒng)并不對數(shù)據(jù)進(jìn)行物理排序。對嗎?
答:對。

7.不管對表進(jìn)行什么類型的操作,在表上建立的索引越多越能提高操作效率。對嗎?
答:不對。

8.經(jīng)常對表進(jìn)行哪類操作適合建立索引?適合在哪些列上建立索引?
答:
?返回范圍值的查詢:BETWEEN AND、>、>=、< 和 <= ;
?不返回大型結(jié)果集的查詢。
?經(jīng)常被用作連接的列,一般來說,這些列是外鍵列。
?ORDER BY或GROUP BY操作。
適合建立索引的情況:
?包含大量非重復(fù)值的列。
?在WHERE子句中經(jīng)常用于進(jìn)行BETWEEN AND、>、>=、< 和 <=等操作的列。
?經(jīng)常被用作連接操作的列。
?ORDER BY或GROUP BY子句中涉及的列。

9.使用第5章建立的Student、Course和SC表,寫出實現(xiàn)下列操作的SQL語句。
(1)在Student表上為Sname列建立一個非聚集索引,索引名為:SnameIdx。
答:Create index SnameIdx on student(Sname)

(2)在Course表上為Cname列建立一個唯一的非聚集索引,索引名為:CNIdx
答:Create unique index CNIdx on Course(Cname)

(3)在SC表上為Sno和Cno建立一個組合的聚集索引,索引名為:SnoCnoIdx。
答:Create clustered index SnoCnoIdx on SC(Sno,Cno)

(4)刪除Sname列上建立的SnoIdx索引。
答:drop index SnoIdx on Student

10.試說明使用視圖的好處。
答:利用視圖可以簡化客戶端的數(shù)據(jù)查詢語句,使用戶能從多角度看待同一數(shù)據(jù),可以提高數(shù)據(jù)的安全性,視圖對應(yīng)數(shù)據(jù)庫三級模式中的外模式,因此提供了一定程度的邏輯獨立性。

  • 使用視圖可以加快數(shù)據(jù)的查詢速度,這句話對嗎?為什么?
    答:不對,因為通過視圖查詢數(shù)據(jù)時,比直接針對基本表查詢數(shù)據(jù)多了一個轉(zhuǎn)換過程,即從外模式到模式的轉(zhuǎn)換。
  • 12.使用第5章建立的Student、Course和SC表,寫出創(chuàng)建滿足下述要求的視圖的SQL語句。
    (1)查詢學(xué)生的學(xué)號、姓名、所在系、課程號、課程名、課程學(xué)分。
    答:Create view v1 As
    Select s.sno,sname,sdept,c.cno,cname,credit
    From student s join sc on s.sno = sc.sno
    Join course c on c.cno = sc.cno

    (2)查詢學(xué)生的學(xué)號、姓名、選修的課程名和考試成績。
    答:Create view v2 As
    Select s.sno,sname,cname,grade
    From student s join sc on s.sno = sc.sno
    Join course c on c.cno = sc.cno

    (3)統(tǒng)計每個學(xué)生的選課門數(shù),要求列出學(xué)生學(xué)號和選課門數(shù)。
    答:Create view v3 As
    Select sno,count(*) as total
    From sc group by sno

    (4)統(tǒng)計每個學(xué)生的修課總學(xué)分,要求列出學(xué)生學(xué)號和總學(xué)分(說明:考試成績大于等于60才可獲得此門課程的學(xué)分)。
    答:Create view v4 As
    Select sno,sum(credit) as total_credit
    From sno join course c on c.cno = sc.cno
    Where grade >= 60
    Group by sno

    13.利用第12題建立的視圖,完成如下查詢:
    (1)查詢考試成績大于等于90分的學(xué)生的姓名、課程名和成績。
    答:Select sname,cname,grade From v2 where grade >= 90

    (2)查詢選課門數(shù)超過3門的學(xué)生的學(xué)號和選課門數(shù)。
    答:Select * from v3 where total >= 3

    (3)查詢計算機(jī)系選課門數(shù)超過3門的學(xué)生的姓名和選課門數(shù)。
    答:Select sname,total from v3 join student s on s.sno = v3.sno
    Where sdept = ‘計算機(jī)系’ and total >= 3

    (4)查詢修課總學(xué)分超過10分的學(xué)生的學(xué)號、姓名、所在系和修課總學(xué)分。
    答:Select v4.sno,sname,sdept,total_credit
    From v4 join student s on s.sno = v4.sno
    Where total_credit >= 10

    (5)查詢年齡大于等于20歲的學(xué)生中,修課總學(xué)分超過10分的學(xué)生的姓名、年齡、所在系和修課總學(xué)分。
    答:Select sname,sage,sdept,total_credit
    From v4 join student s on s.sno = v4.sno
    Where sage >= 20 and total_credit >= 10

    14.修改12題(4)定義的視圖,使其查詢每個學(xué)生的學(xué)號、平均成績以及總的選課門數(shù)。
    答: Alter view v4 As
    Select sno,avg(grade) as avg_grade,count(*) as total_cno
    Group by sno

    總結(jié)

    以上是生活随笔為你收集整理的《数据库原理与应用》(第三版) 第7章 索引和视图 基础 习题参考答案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。