檢視和索引 資料庫實驗4

2022-12-01 16:09:04 字數 3494 閱讀 1631

資料庫基礎與實踐實驗報告

實驗四檢視和索引

班級:惠普測試142

學號:1408090213

姓名:閆偉明

日期:2016-11-13

1 實驗目的:

1) 掌握sql進行檢視建立的方法;

2) 掌握sql進行檢視更新的方法,理解檢視更新受限的原因;

3) 掌握sql進行索引建立及刪除的方法。

2 實驗平台:

作業系統:windows xp。

實驗環境:sql server 2000以上版本。

3 實驗內容與步驟

利用實驗一建立的sch_id資料庫完成下列實驗內容。

1. 定義檢視v_tcs(定義時不加with check option),存放全部計算機系老師的資訊。

檢視定義**:

create view v_tcs as

select tno,tn,***,age,prof,sal,comm,

from t,d

where and '計算機'

檢視查詢語句與查詢結果截圖:

select * from v_tcs

2. 定義檢視v_sal,存放全體教師的教師號,教師姓名,教師酬金(工資+崗位津貼),職稱資訊。

檢視定義**:

create view v_sal as

select tno 教師號,tn 教師姓名,sal+comm 教師酬金,prof 支撐資訊

from t

檢視查詢語句與查詢結果截圖:

select * from v_sal

3. 向v_tcs中插入一條計算機專業教師的新記錄,並查詢v_tcs檢視的全部記錄。

檢視更新**:

insert into v_tcs

select 't10','良瑗','女',20,'講師',6000,8000,

from d

where '計算機'

檢視查詢語句與查詢結果截圖:

select * from v_tcs

4. 向v_tcs中插入一條資訊專業教師的新記錄,並查詢v_tcs檢視的全部記錄。

檢視更新**:

insert into v_tcs

select 't11','百里登風','男',21,'講師',6000,8000,

from d

where '資訊'

檢視查詢語句與查詢結果截圖:

select * from v_tcs

select * from t where tno='t11'

5. 修改v_tcs中的記錄,使得編號為t2的教師的職稱為副教授。

檢視更新**:

update v_tcs set prof='副教授' where tno='t2'

檢視查詢語句與查詢結果截圖:

select * from v_tcs where tno='t2'

6. 定義檢視v_ tcs_ck(定義時加with check option),存放全部計算機系老師的資訊,對比該檢視與v_tcs在進行資料更新時的差別。

檢視定義**:

create view v_tcs_ck as select tno,tn,***,age,prof,sal,comm,

from t,d

where and '計算機'

with check option

檢視更新對比實驗**及執行結果截圖:

--1.能插入

insert into v_tcs_ck

select 't12','良莠','女',20,'講師',4000,4000,

from d

where '計算機'

--2.不能插入(檢視check option約束)

insert into v_tcs_ck

select 't13','天明','男',25,'講師',4000,4000,

from d

where '資訊'

7. 在課程c表的課程名屬性上按降序建立唯一索引i_cn。

索引定義**:

create index i_cn on c(cn desc)

執行結果截圖:

8. 刪除c表上的索引i_cn。

索引刪除**:

drop index

執行結果截圖:

4 深入思考與討論

1) 請先自己定義乙個檢視,使定義該檢視的查詢中使用連線。再更新該檢視,觀察檢視更新受限情況。

--1.定義:

create view v_sc as

select sn,

from s,c,sc

where and

--2.查詢:

select * from v_sc

--3.均無法插入(插入影響到多張表):

insert into v_sc values('笑笑','s1','j**a',99)

insert into v_sc values('笑笑','s1','ruby',99)

insert into v_sc values('良垣','s15','j**a',99)

insert into v_sc values('良莠','s1','j**a',99)

select * from v_sc where sno='s1'

--4.可以更新(修改分數只影響到sc一張表):

update v_sc set v_ where v_'大學英語' and v_'s1'

select * from v_sc where sno='s1'

--5.無法更新年齡(檢視v_sc不包含age列):

update v_sc set age=18 where v_'s1'

--6.無法更新,修改會影響到s和sc兩張表:

update v_sc set sn='韓笑',score=98 where v_'s1'

--7.將成績為null的課程名設為null,更新失敗(遵守基表c的cn列的not null約束):

update v_sc set cn=null where score is null

2) 請先自己定義乙個檢視,使定義該檢視的查詢帶分組和集函式。再更新該檢視,觀察檢視更新受限情況。

--1.定義:

create view v_sc_gp as

select sn, **g_score

from s,c,sc

where and

group by sn,

--2.查詢:

select * from v_sc_gp

--3.無法插入:

insert into v_sc_gp values('劉靜','s8',88)

--4.無法更新(**g_score集函式列):

update v_sc_gp set **g_score=88 where sn='小明'

--5.無法更新(檢視包含聚集函式、group by子句):

update v_sc_gp set sn='小小雲' where sn='小明'

資料庫原理實驗報告S9 資料庫索引

要求 1.報告格式和內容要求 a.內容和格式整齊。大標題採用黑體四號字加粗,小標題採用小四號字加粗。正文採用五號宋體,單倍行距。b.貼圖時請剪裁到適當大小,要保證列印時可以看清,但也不要太大以免 越界 c.不要在報告中寫與實驗無關的話,內容要有條理 完整 並能突出重點,要將遇到的主要問題說明。2.檔...

關於ORACLE資料庫索引

許娟萍1999.03.22 一 索引 索引不是執行oracle所必需的,但它能夠加快查詢速度。當執行同樣的查詢時,若有利用索引,oracle首先在索引中查詢,由於索引是按大小排列的,因此能很快找到查詢結果。乙個表的單個索引最多可以包含16個列。索引太多的代價是降低插入新行的速度 每做一次insert...

資料庫實驗

實驗名稱 關係查詢與連線 一 實驗目的 1 理解select語句的操作和基本使用方法,熟練掌握簡單查詢。2 掌握select語句的巢狀使用,實現表的複雜查詢,進一步理解select語句的高階使用方法。3 理解join語句的操作和基本使用方法,掌握內連線 外連線 自連線的概念和使用。二 實驗環境 使用...