日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

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

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

3.在一個表上可以創建幾個聚集索引?可以創建多個非聚集索引嗎?
答:1個聚集索引。可以。

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

5.在建立聚集索引時,數據庫管理系統是真正將數據按聚集索引列進行物理排序。對嗎?
答:對。

6.在建立非聚集索引時,數據庫管理系統并不對數據進行物理排序。對嗎?
答:對。

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

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

9.使用第5章建立的Student、Course和SC表,寫出實現下列操作的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.試說明使用視圖的好處。
答:利用視圖可以簡化客戶端的數據查詢語句,使用戶能從多角度看待同一數據,可以提高數據的安全性,視圖對應數據庫三級模式中的外模式,因此提供了一定程度的邏輯獨立性。

  • 使用視圖可以加快數據的查詢速度,這句話對嗎?為什么?
    答:不對,因為通過視圖查詢數據時,比直接針對基本表查詢數據多了一個轉換過程,即從外模式到模式的轉換。
  • 12.使用第5章建立的Student、Course和SC表,寫出創建滿足下述要求的視圖的SQL語句。
    (1)查詢學生的學號、姓名、所在系、課程號、課程名、課程學分。
    答: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)查詢學生的學號、姓名、選修的課程名和考試成績。
    答: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)統計每個學生的選課門數,要求列出學生學號和選課門數。
    答:Create view v3 As
    Select sno,count(*) as total
    From sc group by sno

    (4)統計每個學生的修課總學分,要求列出學生學號和總學分(說明:考試成績大于等于60才可獲得此門課程的學分)。
    答: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分的學生的姓名、課程名和成績。
    答:Select sname,cname,grade From v2 where grade >= 90

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

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

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

    (5)查詢年齡大于等于20歲的學生中,修課總學分超過10分的學生的姓名、年齡、所在系和修課總學分。
    答: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)定義的視圖,使其查詢每個學生的學號、平均成績以及總的選課門數。
    答: Alter view v4 As
    Select sno,avg(grade) as avg_grade,count(*) as total_cno
    Group by sno

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。