Hello,這是資料庫實驗報告系列的最後一份了,我将要結束這個系列了。再次感謝能點開這個報告合集系列的你~
一、 實驗目的及實驗環境
(1) 了解索引和視圖的概念
(2) 掌握索引的使用方法
(3) 掌握視圖的定義和使用方法
二、 實驗内容及結果
了解索引的概念
當表的資料量比較大時,查詢操作會比較耗時。這時候建立索引是加快查詢速度的有效手段,它能快速定位到需要查詢的内容。使用者可以根據需要在基本表上建立一個或多個索引,用來提供多種存取路徑,加快查找速度。
建立索引
核心語句:CREATE (UNIQUE) INDEX <索引名> ON 表名(列名 ASC/DESC,列名 ASC/DESC)
注意:ASC為升序,DESC為降序。預設為ASC升序。
實驗要求 對JWGL資料庫的學生選課表SC建立索引,要求按照Cno升序、Grade降序建立一個名為SC_ind的索引。代碼如下。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLmJTNxUjNkFmNzgzMjhTN4YWNlRzNiVjM0cDO5EzN1I2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
更保險的代碼如下。
此代碼比上述代碼更加完善保險,第一行加入了IF EXISTS語句,如果已經存在名為’SC_ind’的索引,則執行第二行删除索引的操作。在第三行繼續在執行建立索引操作。視圖的定義和操作。
修改索引
核心語句:ALTER INDEX <old索引名> RENAME TO <new索引名>。代碼如下,
删除索引
核心代碼:DROP INDEX <索引名>。代碼如下。
了解視圖的概念
視圖是關系資料庫系統為使用者提供從不同角度觀察和使用資料庫中資料的一種機制。視圖是一個虛表,在資料庫中隻存放視圖的定義,而不存放對應資料。這些資料仍然存在在原來的表中,其變化可以通過視圖而反應出來,我們可以對視圖進行查詢操作。
建立視圖
核心語句為:CREATE VIEW <視圖名> (<列名>,<…>)
AS
<SELECT子查詢>
[WITH CHECK OPTION]
例3.54 建立計算機系學生的視圖,并要求進行修改和插入時需保證視圖隻能對計算機系學生進行操作。代碼如下。
[WITH CHECK OPTION]作用:因為題目要求隻能對計算機系學生進行操作,加入了WITH CHECK OPTION之後系統會自動檢查或加上Sdept = ‘CS’的條件。
例3.55 建立選擇了2号課程且成績在80分以上的學生視圖。
例3.56 (帶表達式的視圖)建立一個反映學生出生年份的視圖。
删除視圖
核心語句:DROP VIEW <視圖名>;
查詢視圖
例3.57 在計算機系的視圖c_student上查詢年齡在18~20歲之間的學生的學号和姓名。代碼如下。
【執行結果如下】
例3.58 在例3.55的學生視圖上查詢90分以上的女學生的學号和姓名。
【執行結果如下】
更新視圖
例3.59 在例3.54視圖上進行操作,将學号為980021的學生姓名改為’TOY’。代碼如下。
例3.60 在例3.54視圖上進行操作,插入一個學生資訊
例3.61 在例3.54視圖上進行操作,删除學号為980013學生資訊
三、 非正常運作結果及原因
無
四、 對設計及調試過程的心得體會
其實這次相較于之前的實驗來說,任務量減少了,并且對于視圖的操作都是建立在之前熟悉SQL語句的基礎之上。使用的方法更加能夠展現TSQL語句的結構特性,實際上每一步都是非常有邏輯可循的。在結合了離散數學中數理邏輯的知識後,熟練運用邏輯等級,讓查詢變得更加自然有規律。