《數據庫開發技術》實驗指導書(計本10)-唐軍芳_第1頁
《數據庫開發技術》實驗指導書(計本10)-唐軍芳_第2頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、浙江樹人大學信息科技學院實驗指導書適合專業:計算機科學與技術本科專業編寫部門:電子商務教研室編寫日期:2012.09T-SQLT-SQLServer. .實驗一:T-SQL 高級查詢一、 實驗目的 用 和二、 原理解析1、 多表查詢 2、 使用 UNION子句 子3、 使用統計函數 4、 使用 group by 子句 5、 使用 compute 和 compute by 子句 1 6、 使用嵌套查詢三、 實驗內容、在與、 、 、 、 對、 對、 、 現、 分的學生的學號、姓名(用、 2四、 實驗步驟(=、 在與 * 、 、 3(= )、 (= )、 (= )、 )、4、對、對 、5、 6實驗二

2、:數據完整性測試一、實驗目的二、原理解析1、 使用約束實施數據完整性2、 使用規則3、 使用默認值4、 使用標識列三、 實驗內容、 、 、 、 的7用T-SQL語句在數據庫student中創建一個規則GZ_GRADE8實驗三:T-SQL 編程結構一、實驗目的通過實驗使學生掌握更復雜的 T-SQL 查詢的應用規則,如需要循環、判斷才能表達清楚的查詢過程。二、原理解析1、批處理批處理是一個或多個 Transact-SQL語句的集合,從應用程序一次性發送到SQL Server并由 SQL Server編譯成一個可執行單元,此單元稱為執行計劃。執行計劃中的語句每次執行一條。2、變量打頭。局部變量用 D

3、ECLARE語句聲明,用 SET 語句賦值,具體語法請參見幫助。3、流程控制語句語句塊語句語句語句語句語句三、實驗內容1、分析程序的運行結果2、使用局部變量向表中插入數據3、ifelse語句的使用4、case語句的使用5、while語句的使用實驗步驟1、執行下列語句,分析語句的執行結果:9use studentcreate view teacher_info_viewasselect teacher_id,name,tech_title,salary from teacher_infogoselect * from teacher_infogo2、分析下列語句的執行結果(局部變量的作用域):d

4、eclare stud_var intgoselect stud_var=25goprint stud_vargo3、使用局部變量,向表格stud_info 插入一行數據(先聲明變量,再賦值,最后1986-10-12男上021-5604、使用 ifelse語句,從數據表stud_grade中讀出學生“陳紅”的成績,將百分制轉換成等級制,成績在 90 分到 100 分之間等級為 ,80 分以上為 ,70分以上為 C,60 分以上為 ,60 分以下為 E。5、使用 CASE 語句實現從數據表 stud_info stud_id gender為男則輸出“M”,如果為女則輸出“F”。6、使用 whil

5、e循環語句實現以下功能:求 2300 之間的所有素數。7 stud_grade 小于 60 分輸出不及格、60 分至 70 分輸出“及格、70 分至 90 分輸出良好、大于或等于 90 分輸出優秀。8、 使用 CASE 語句,輸出教師基本信息表(teacher_info)中所有教師所在的年齡段(每 6 9、10、10實驗四:游標和事務設計一、實驗目的數據庫游標是類似于 C基本和最常用的方法。SQL Server 作為典型的關系數據庫,為事務控制提供了完善的編程結構。通過實驗掌握事務的各種特性。二、 原理解析1、游標設計 SQL命令都是同時處理集合內部的所有數這個問題。游標的使用一般可按順序分為

6、如下幾個步驟: 聲明游標語法:DECLARE 游標名 INSENSITIVE SCOROLL CURSORFOR SELECT 語句 打開游標語法:OPEN CURSOR_NAME 使用游標取數或修改數據語法:FETCH COURSOR_NAME INTO VAR 關閉游標語法:CLOSE CURSOR_NAME 釋放游標語法:DEALLOCATE CURSOR_NAME2、事務事務處理控制語句有以下 4個: BEGIN TRAN TRAN_NAME COMMIT TRAN ROLLBACK TRAN SAVE TRAN三、實驗內容和步驟1、統計“多媒體技術”課程考試成績的各分數段的分布情況,

7、即 100 分的有己幾人,90100 分有幾人,8090 有幾人,7080 有幾人,6070 有幾人,不及格有幾人,用游標實現。2、運用事務處理將 student數據庫中課程信息表 lesson_info中的多媒體技術課程編號 course_id由改為。3 3student數據庫的 stud_info設置功,然后回滾事務到保存點,最后執行檢索操作,看插入的數據是否還存在。定義一個游標,將教師表teacher中所有教師的姓名、 教師職稱顯示出來。5、通過游標將教師表teacher_info 中記錄號為5 的老師的職稱由改為副教授。6、使用游標顯示 stud_info表中所有學生的基本信息。7 s

8、tud_info表中的每個學生如果在 stud_grade表中有相應的選課記錄則刪除該生的選課記錄。8、通過游標實現顯示 stud_info表中所有男生的基本信息。9、通過游標實現:統計學生人數。10、為stud_info表添加一“備注”字段,某學生如果已選修了課程,則將“備11 stud_info表的 用游標實現。12、12實驗五:SQL Server函數的使用一、實驗目的為了使用戶對數據庫進行查詢和修改時更加方便,SQL Server在 TSQL 中提供了許多內部函數以供使用。本次使用掌握其中某些函數的使用方法和意義。SQL Server還提供了用戶自定義函數,用戶可以按照自己的意愿創建函

9、數。本次實驗要求學生掌握用戶自定義函數的創建和使用。二、原理解析SQL Server函數分為:1、數學函數2、字符串函數3、日期函數4、系統函數5、統計函數6、用戶自定義函數其中用戶自定義函數又可分為標量函數、內嵌表值函數、多語句表值函數。標量函數:返回單個數據值。內嵌表值函數:返回值是一個記錄集合表。在此函數中,return 語句包含一條單獨的 select語句。多語句表值函數:返回值是由選擇的結果構成的記錄集。實驗內容1、創建一標量函數,要求:每次輸入一個學號,計算該學生的所有課程的平均分,如果是 85100 分,返回“優”;如果是 7584 分,返回“良”;如果是6574,返回“中”;如

10、果是 064,返回“差”。2、創建一內嵌表值函數,要求:每次輸入一個學號,返回學生選修的課程名和成績。調用創建的函數查詢學號為“”學生所選修的課程名和成績。3、用多語句表值函數實現查詢某個學生的學號、姓名及選修門數。利用創建的函數查詢學號為“”的學生的學號、姓名及選修門數。4、在存儲過程中調用用戶自定義函數,實現求兩個數的較大值。135、利用標量函數和游標修改表數據。6、創建一內嵌表值函數來替代視圖,這個函數返回成績在所有學生平均成績之上的學生姓名和成績。7、用多語句表值函數實現根據某學生的學號,查詢該生的姓名及選修門數。8、用內嵌表值函數實現第 7 題。9、實驗步驟1、創建一標量函數,要求:

11、每次輸入一個學號,計算該學生的所有課程的平均分,如果是 85100 分,返回“優”;如果是 7584 分,返回“良”;如果是6574,返回“中”;如果是 064,返回“差”。 查詢學號為“”的學生的平均分的等級。2、創建一內嵌表值函數,要求:每次輸入一個學號,返回學生選修的課程名和成績。調用創建的函數查詢學號為“”學生所選修的課程名和成績。3、用多語句表值函數實現查詢某個學生的學號、姓名及選修門數。利用創建的函數查詢學號為“”的學生的學號、姓名及選修門數。4、在存儲過程中調用用戶自定義函數,實現求兩個數的較大值。5、利用標量函數和游標修改表數據,要求:編寫一標量函數以求得某學生的年齡,向 st

12、ud_info 表中添加一列“年齡”,利用游標修改每個學生的年齡。6、創建一內嵌表值函數來替代視圖,這個函數返回成績在所有學生平均成績之上的學生姓名和成績。7、用多語句表值函數實現根據某學生的學號,查詢該生的姓名及選修門數。8、用內嵌表值函數實現第 7 題。14實驗六:存儲過程的創建和使用一、 實驗目的本次實驗要求學生掌握用戶自定義存儲過程的創建和使用。二、 原理解析存儲過程是一組預先編譯好的 TSQL代碼,可以作為一個獨立的數據庫對以執行的時候不必再次進行編譯,提高了效率。創建存儲過程語法:CREATE PROC PROC_NAMEWITHRECOMPILE | ENCRYPTION | R

13、ECOMPILE, ENCRYPTIONAS SQL_STATEMENT N實驗內容1、創建和執行不帶參數的存儲過程。2、創建和執行帶參數的存儲過程。創建和執行帶輸出參數的存儲過程。實驗步驟1、針對教師基本信息表teacher_info,創建一個名稱為teacher_proc1的存儲過程,該存儲過程的功能是從數據表 teacher_info中查詢所有男教師的信息。2、創建一個名稱為 student_proc1的存儲過程,該存儲過程的功能是查詢學生3、針對教師基本信息表teacher_info,創建一個名為 teacher_proc2的存儲過程,執行該存儲過程將向數據表teacher_info中

14、插入一條記錄,新記錄的值由參數提供。針對教師基本信息表teacher_info teacher_proc3數據表 teacher_info中插入一條記錄,新記錄的值由參數提供,如果未提供職稱 tech_title4 student上創建一個15名為 stud_proc2的存儲過程,其功能是輸入兩個日期型數據,并使用輸出參數返回這兩個出生日期之間的所有學生人數。返回出生日期在 1986年 1月 1日與 1986年 12月 31日之間的學生記錄的條數。5、存儲過程名為 proc1,要求實現如下功能:根據學生學號,查詢該學生的選課情況,其中包括該學生學號、姓名、課程號、課程名、成績等。6、 實驗七:

15、觸發器的創建一、實驗目的的數據約束。二、原理解析于一個表創建,但是可以針對多個表進行操作。創建觸發器語法:CREATE TRIGGER TRIG_NAMEON TABLE|VIEWWITH ENCRYPTIONFOR|AFTER|INSTEAD OFNOT FOR REPLICATIONASSQL_STATEMENTN RETURN INTEGER_EXP16三、實驗內容1、創建 insert觸發器。2、創建 update觸發器。3、創建 delete觸發器。4、創建 instead of觸發器。四、實驗步驟1、編寫一個(teacher_insert)觸發器,當向teacher_info表中插

16、入一條記錄 course_id是否存在于 lesson_info在,則取消插入。use studentgoasifbeginend2、編寫一個(teacher_insert1)觸發器,當向 teacher_info表中插入一條記 course_id是否存在于 lesson_info存在,則將相應的課程信息在 lesson_info表中插入。use studentgoas17ifbegindeclare course_id char(10)insert into lesson_infovalues( ,數據庫開發技術,考試,3,60)end3、編寫一個(teacher_update)觸發器,當修

17、改 lesson_info表的 course_id列值時,該列在 teacher_info表中的對應值也作相應的修改。use studentgoasbeginselect course_idupdate teacher_infofrom teacher_info,deletedwhereend4、編寫一個(teacher_update1)觸發器,當修改lesson_info表的 course_id列值時,該列在 teacher_info表中若有相應的值,則拒絕修改。use studentgo18asifbeginend5、編寫一個(teacher_deletee)觸發器,當刪除 lesson_info表中的記錄時,也將同時刪除該記錄 course_id

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論