mysql实验视图与索引_视图和索引(数据库实验4)【借鉴实操】
《視圖和索引(數據庫實驗4)【借鑒實操】》由會員分享,可在線閱讀,更多相關《視圖和索引(數據庫實驗4)【借鑒實操】(11頁珍藏版)》請在人人文庫網上搜索。
1、數據庫基礎與實踐實驗報告實驗四 視圖和索引班級:惠普測試142 學號:1408090213姓名:閆偉明日期:2016-11-131 實驗目的: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 A。
2、S SELECT tno,tn,sex,age,prof,sal,comm,T.dno FROM T,D WHERE T.dno=D.dno AND D.dn=計算機 視圖查詢語句與查詢結果截圖:SELECT * FROM V_TCS2. 定義視圖V_sal,存放全體教師的教師號,教師姓名,教師酬金(工資+崗位津貼),職稱信息。視圖定義代碼:CREATE VIEW V_sal AS SELECT tno 教師號,tn 教師姓名,sal+comm 教師酬金,prof 支撐信息 FROM T視圖查詢語句與查詢結果截圖:SELECT * FROM V_sal3. 向V_TCS中插入一條計算機專業教師。
3、的新記錄,并查詢V_TCS視圖的全部記錄。視圖更新代碼:INSERT INTO V_TCS SELECT T10,良瑗,女,20,講師,6000,8000,D.dno FROM D WHERE D.dn=計算機視圖查詢語句與查詢結果截圖:SELECT * FROM V_TCS4. 向V_TCS中插入一條信息專業教師的新記錄,并查詢V_TCS視圖的全部記錄。視圖更新代碼:INSERT INTO V_TCS SELECT T11,百里登風,男,21,講師,6000,8000,D.dno FROM D WHERE D.dn=信息視圖查詢語句與查詢結果截圖:SELECT * FROM V_TCSSEL。
4、ECT * FROM T WHERE tno=T115. 修改V_TCS中的記錄,使得編號為t2的教師的職稱為副教授。視圖更新代碼:UPDATE V_TCS SET prof=副教授 WHERE tno=T2 視圖查詢語句與查詢結果截圖:SELECT * FROM V_TCS WHERE tno=T26. 定義視圖V_ TCS_ck(定義時加with check option),存放全部計算機系老師的信息,對比該視圖與V_TCS在進行數據更新時的差別。視圖定義代碼:CREATE VIEW V_TCS_ck AS SELECT tno,tn,sex,age,prof,sal,comm,T.dno。
5、 FROM T,D WHERE T.dno=D.dno AND D.dn=計算機WITH CHECK OPTION視圖更新對比實驗代碼及運行結果截圖:-1.能插入INSERT INTO V_TCS_ckSELECT T12,良莠,女,20,講師,4000,4000,D.dno FROM D WHERE D.dn=計算機-2.不能插入(視圖CHECK OPTION約束)INSERT INTO V_TCS_ckSELECT T13,天明,男,25,講師,4000,4000,D.dno FROM D WHERE D.dn=信息7. 在課程C表的課程名屬性上按降序創建唯一索引I_cn。索引定義代碼:C。
6、REATE INDEX I_cn ON C(cn DESC)運行結果截圖:8. 刪除C表上的索引I_cn。索引刪除代碼:DROP INDEX C.I_cn運行結果截圖:4 深入思考與討論1) 請先自己定義一個視圖,使定義該視圖的查詢中使用連接。再更新該視圖,觀察視圖更新受限情況。-1.定義:CREATE VIEW V_SC AS SELECT sn,S.sno,cn,score FROM S,C,SC WHERE S.sno=SC.sno AND C.cno=SC.cno-2.查詢:SELECT * FROM V_SC-3.均無法插入(插入影響到多張表):INSERT INTO V_SC VA。
7、LUES(笑笑,S1,JAVA,99)INSERT INTO V_SC VALUES(笑笑,S1,RUBY,99)INSERT INTO V_SC VALUES(良垣,S15,JAVA,99)INSERT INTO V_SC VALUES(良莠,S1,JAVA,99) SELECT * FROM V_SC WHERE sno=S1-4.可以更新(修改分數只影響到SC一張表):UPDATE V_SC SET V_SC.score=99 WHERE V_SC.cn=大學英語 AND V_SC.sno=S1SELECT * FROM V_SC WHERE sno=S1-5.無法更新年齡(視圖V_SC。
8、不包含age列):UPDATE V_SC SET age=18 WHERE V_SC.sno=S1-6.無法更新,修改會影響到S和SC兩張表:UPDATE V_SC SET sn=韓笑,score=98 WHERE V_SC.sno=S1 -7.將成績為NULL的課程名設為NULL,更新失敗(遵守基表C的cn列的NOT NULL約束):UPDATE V_SC SET cn=NULL WHERE score IS NULL2) 請先自己定義一個視圖,使定義該視圖的查詢帶分組和集函數。再更新該視圖,觀察視圖更新受限情況。-1.定義:CREATE VIEW V_SC_gp AS SELECT sn,S.sno,AVG(score) avg_scoreFROM S,C,SC WHERE S.sno=SC.sno AND C.cno=SC.cnoGROUP BY sn,S.sno-2.查詢:SELECT * FROM V_SC_gp-3.無法插入:INSERT INTO V_SC_gp VALUES(劉靜,S8,88)-4.無法更新(avg_score集函數列):UPDATE V_SC_gp SET avg_score=88 WHERE sn=小明-5.無法更新(視圖包含聚集函數、GROUP BY子句):UPDATE V_SC_gp SET sn=小小云 WHERE sn=小明11cl借鑒。
總結
以上是生活随笔為你收集整理的mysql实验视图与索引_视图和索引(数据库实验4)【借鉴实操】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FOFA常用搜索语法
- 下一篇: SQL Server 2019下载及安装