福建農(nóng)林大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報告

上傳人:燈火****19 文檔編號:26694917 上傳時間:2021-08-12 格式:DOC 頁數(shù):24 大?。?93.50KB
收藏 版權(quán)申訴 舉報 下載
福建農(nóng)林大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報告_第1頁
第1頁 / 共24頁
福建農(nóng)林大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報告_第2頁
第2頁 / 共24頁
福建農(nóng)林大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報告_第3頁
第3頁 / 共24頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《福建農(nóng)林大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報告》由會員分享,可在線閱讀,更多相關(guān)《福建農(nóng)林大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報告(24頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院 實(shí)驗(yàn)報告 課程名稱: 數(shù)據(jù)庫原理及應(yīng)用 姓 名: 系: 專 業(yè): 計算機(jī)科學(xué)與技術(shù) 年 級: 學(xué) 號: 指導(dǎo)教師: 李金銘 職 稱: 副教授 2015年 月 日 實(shí)驗(yàn)?zāi)夸洠? 實(shí)驗(yàn)編號 實(shí)驗(yàn)名稱 成績 1 數(shù)據(jù)庫的定義實(shí)驗(yàn) 2 數(shù)據(jù)庫的建立與維護(hù)實(shí)驗(yàn) 3 數(shù)據(jù)庫的查詢實(shí)驗(yàn) 4 數(shù)據(jù)庫的視圖操作實(shí)驗(yàn) 5 觸發(fā)器、存儲過程操作實(shí)驗(yàn) 總評

2、 福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院實(shí)驗(yàn)報告 實(shí)驗(yàn)名稱:數(shù)據(jù)庫的定義實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康暮鸵? (1)要求學(xué)生熟練掌握和使用 SQL、Transact-SQL、SQL Server企業(yè)管理器創(chuàng)建數(shù)據(jù)庫、表、索引和修改表結(jié)構(gòu)。 (2)學(xué)會使用SQL Server 查詢分析器接收Transact-SQL語句和進(jìn)行結(jié)果分析。 二、實(shí)驗(yàn)內(nèi)容和原理 1. 基本操作實(shí)驗(yàn) (1)使用企業(yè)管理器按教材中的內(nèi)容建立圖書—讀者數(shù)據(jù)庫。 (2)在企業(yè)管理器中查看圖書讀者數(shù)據(jù)庫的屬性,并進(jìn)行修改,使之符合要求。 (3)通過企業(yè)管理器,在建好的圖書借閱數(shù)據(jù)庫中建立圖書、讀者和借

3、閱3個表,其結(jié)構(gòu)為; 圖書(書號,類別,出版社,作者,書名,定價); 讀者(編號,姓名,單位,性別,電話); 借閱(書號,讀者編號,借閱日期) 要求為屬性選擇合適的數(shù)據(jù)類型,定義每個表的主碼,是否允許空值和默認(rèn)值等列級數(shù)據(jù)約束。 (4)在企業(yè)管理器中建立圖書、讀者和借閱3個表的表級約束:每個表的主碼約束;借閱表與圖書表間、借閱表與讀者表之間的外碼約束,要求按語義先確定外碼約束表達(dá)式,再通過操作予以實(shí)現(xiàn);實(shí)現(xiàn)借閱表的書號和讀者編號的惟一性約束:實(shí)現(xiàn)讀者性別只能是“男”或“女”的Check(檢查)約束。 三、實(shí)驗(yàn)環(huán)境 硬

4、件:計算機(jī) 軟件:Windows 2000和SQL Server 2000 四、算法描述及實(shí)驗(yàn)步驟 l.通過企業(yè)管理器,建立圖書借閱數(shù)據(jù)庫 在數(shù)據(jù)庫圖標(biāo)上右擊,選擇“新建數(shù)據(jù)庫”,輸入“圖書_讀者”,單擊“確定”按鈕,關(guān)閉對話框。在企業(yè)管理器窗口中出現(xiàn)“圖書-讀者”數(shù)據(jù)庫標(biāo)志,這表明建庫工作已經(jīng)完成。 2.在建好的圖書借閱數(shù)據(jù)庫中建立圖書、讀者和借閱3個表 (1)建立“圖書”表。 選中圖書_讀者數(shù)據(jù)庫中的表文件夾,單由鼠標(biāo)右鍵,在彈出的菜單中選擇“新建表”,如圖2所示。 (2)輸入結(jié)構(gòu) 書號: char 長度 10,不允許空值。并設(shè)置為主鍵。 類別: char 長度 1

5、2,允許空值。 出版社:varchar 長度 50,不允許空值。 作者:varchar 長度 50,允許空值。 名稱:varchar 長度 50,不允許空值。 定價:char 長度 10,允許空值。 建立表格如圖3所示。 (3)建立“讀者”表和“借閱”表。 與建立“圖書”表的形式一致,如表2。 (4) 輸入結(jié)構(gòu) 讀者(編號,姓名,單位,性別,電話) 借閱(書號,讀者編號,借閱日期) “讀者”表: 編號:char 長度 20,不允許空值。并設(shè)置為主鍵。 姓名:varchar 長度 50,不允許空值。 單位:varchar 長度 50,不允許空值。 性別:char

6、長度 10,不允許空值。 電話:varchar 長度 50,不允許空值。 “借閱”表: 書號:char 長度 10,不允許空值。 讀者編號:char 長度 20,不允許空值。 借閱日期:datetime,不允許空值。 將“書號”與“讀者編號”設(shè)置為主鍵。 3. 指出圖書讀者數(shù)據(jù)庫各表的主碼、外碼和數(shù)據(jù)約束 在表“圖書”中把書號作為主鍵,步驟如下: 右擊‘書號’,點(diǎn)擊‘設(shè)置主鍵’,在圖書中把‘讀者編號’設(shè)置成主鍵,在借閱表中建立與圖書,和讀者的關(guān)系 在表“讀者”中對‘性別’進(jìn)行check結(jié)束 表“讀者”和表“借閱”的設(shè)置主鍵和表“圖書”一樣 表“圖書”的主碼是書號,外碼也

7、是書號,數(shù)據(jù)約束是主碼不能為空 表“讀者”的主碼是編號,外碼也是編號,數(shù)據(jù)約束是性別只能為男或女 表“借閱”的主碼是書號,外碼是讀者編號,數(shù)據(jù)約束是主碼和外碼不能為空 五、調(diào)試過程 Check約束語句錯誤,經(jīng)調(diào)試成功 六、實(shí)驗(yàn)結(jié)果: 圖1 在數(shù)據(jù)庫彈出菜單中選擇“新建數(shù)據(jù)庫” 圖2建立表格 圖3輸入表結(jié)構(gòu) 七、實(shí)驗(yàn)總結(jié) 通過此次實(shí)驗(yàn),我掌握了建立一個數(shù)據(jù)庫的方法,以及建立表和表之間的關(guān)系,對表中 的屬性進(jìn)行約束,書上的畢竟只是理論,掌握理論不一定會實(shí)踐,實(shí)踐會了才是真的會。 福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院實(shí)驗(yàn)報告 實(shí)驗(yàn)名稱:數(shù)據(jù)庫的

8、建立與維護(hù)實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康暮鸵? 熟練掌握使用 SQL、Transact-SQL和SQL Server企業(yè)管理器向數(shù)據(jù)庫輸入數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)的操作。 二、實(shí)驗(yàn)內(nèi)容和原理 1. 基本操作實(shí)驗(yàn) (1)通過企業(yè)管理器,在圖書-讀者數(shù)據(jù)庫的圖書、讀者和借閱3個表中各輸入5條記錄。要求記錄不僅滿足數(shù)據(jù)約束要求,還要有表間關(guān)聯(lián)的記錄。 (2)通過企業(yè)管理器實(shí)現(xiàn)對圖書-讀者數(shù)據(jù)庫的圖書、讀者和借閱3個表中數(shù)據(jù)的插入、刪除和修改操作。 2. 提高操作實(shí)驗(yàn) (1)通過查詢分析器用SQL命令實(shí)現(xiàn)對學(xué)生-課程庫的數(shù)據(jù)增加、數(shù)據(jù)刪除和數(shù)據(jù)修改操作,要

9、求學(xué)生、課程和選課表中各有5條以上的記錄。 (2)通過查詢分析器用SQL命令實(shí)現(xiàn)在讀者表中增加“借書冊數(shù)’字段,統(tǒng)計借書者在2005年~2007年間所借書的冊數(shù),并將結(jié)果送入讀者表中的借書冊數(shù)字段的操作。 (3)通過查詢分析器用SQL命令為學(xué)生-課程庫中的“課程”表添加“學(xué)時(短整型)”屬性,并設(shè)置它的約束條件為大于0且小于等于150。 三、實(shí)驗(yàn)環(huán)境 硬件:計算機(jī) 軟件:Windows 2000和SQL Server 2000 四、實(shí)驗(yàn)步驟及其結(jié)果 1. 以一條記錄為例,寫出用SQL表示的向圖書表中插入、修改和刪除數(shù)據(jù)的語句 (1)通過企業(yè)管理器,在圖書借閱數(shù)據(jù)庫的圖書、讀者

10、和借閱3個表中各輸入10條記錄。 (2)通過企業(yè)管理器實(shí)現(xiàn)對圖書借閱數(shù)據(jù)庫的圖書、讀者和借閱3個表中數(shù)據(jù)的插入。刪除和修改操作。 刪除:選擇要刪除的數(shù)據(jù),右擊選擇‘刪除’ 插入:在最后一行‘NULL’中可以填寫要插入的信息。 修改:選擇要修改的數(shù)據(jù)直接修改。 (3)向自設(shè)計的數(shù)據(jù)庫應(yīng)用系統(tǒng)的庫中的各表,輸入多條實(shí)際數(shù)據(jù),并實(shí)現(xiàn)數(shù)據(jù)的增、刪、改操作。 五、調(diào)試過程 增加操作: 修改操作: Course表: 原表: 修改后: Student表: 原表: 修改后: SC表: 原表: 修改后: 刪除操作

11、: Course表: 原表: 刪除后: Student表: 原表: 刪除后: SC表: 原表: 刪除后: 六、實(shí)驗(yàn)結(jié)果 2.實(shí)現(xiàn)在讀者表中增加“借書冊數(shù)’字段,統(tǒng)計借書者在1998年~1999年間所借書的冊數(shù),并將結(jié)果送入讀者表中的借書冊數(shù)字段的操作。 結(jié)果: 七、實(shí)驗(yàn)總結(jié) 通過本次實(shí)驗(yàn),我了解了SQL語言對表格進(jìn)行查詢、行插入、刪除和修改的編程。這次實(shí)驗(yàn)讓我了解了更多關(guān)于數(shù)據(jù)庫實(shí)際使用方法,也讓我對數(shù)據(jù)庫的了解更深入。 福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院實(shí)驗(yàn)報告 實(shí)驗(yàn)名稱:數(shù)據(jù)庫的查詢實(shí)驗(yàn) 一、實(shí)驗(yàn)

12、目的和要求 (1)掌握SQL Server查詢分析器的使用方法,加深對SQL和Transact-SQL語言的查詢語句的理解。 (2)熟練掌握簡單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。 (3)熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計、計算和組合的操作方法。 二、實(shí)驗(yàn)內(nèi)容和原理 1. 基本操作實(shí)驗(yàn) 用Transact-SQL語句表示下列操作.在學(xué)生-課程庫中實(shí)現(xiàn)其數(shù)據(jù)查詢操作: (1)求數(shù)學(xué)系學(xué)生的學(xué)號和姓名。 (2)求選修了高等數(shù)學(xué)的學(xué)生學(xué)號、姓名和成績。 (3)求選修C1課程的學(xué)生學(xué)號和成績,并要求對查詢結(jié)果按成績降序排列,如果成績相同則按學(xué)號升序排列。 (4)獲選

13、修課程C1且成績在80~90分之間的學(xué)生學(xué)號、姓名及成績,并將成績乘以系數(shù)0.8輸出。 (5)求數(shù)學(xué)系或計算機(jī)系姓張的學(xué)生的信息。 (6)求缺少了成績的學(xué)生的學(xué)號和課程號。 (7)求C1課程的成績高于張三的學(xué)生學(xué)號和成績。 (8)求其他系中比計算機(jī)系學(xué)生年齡都小的學(xué)生。 (9)查詢選修了全部課程的學(xué)生的姓名。 (10)求至少選修了學(xué)生“張三”所選修的全部課程的學(xué)生學(xué)號和姓名。 (11)查詢每一門課的間接先行課(即先行課的先行課)。 在圖書-圖書庫中實(shí)現(xiàn)其查詢操作。 (1)查找這樣的圖書類別:要求類別中最高的圖書定價不低于全部按類別分組的圖書平均定價的2倍。

14、 (2)求機(jī)械工業(yè)出版社出版的各類圖書的平均定價,用GROUP BY表示。 (3)列出計算機(jī)類圖書的書號、名稱及價格,最后求出冊數(shù)和總價格。 (4)列出計算機(jī)類圖書的書號、名稱及價格,并求出各出版社這類書的總價格,最后求出全部冊數(shù)和總價格。 (5)查詢計算機(jī)類和機(jī)械工業(yè)出版社出版的圖書。 (6)在圖書-借閱庫中實(shí)現(xiàn)其查詢操作:將計算機(jī)類的書存入永久的計算機(jī)圖書表中,將借書日期在1999年以前的借閱記錄存入臨時的超期借閱表。 用Transact-SQL語句表示,并在學(xué)生選課庫中實(shí)現(xiàn)下列數(shù)據(jù)連接查詢操作: 2. 提高操作實(shí)驗(yàn) (

15、1)按表1的格式,建立職工部門庫和職工表、部門,并向表中輸入數(shù)據(jù)。 表1 職工和部門表數(shù)據(jù) 職工表 部門表 職工號 姓名 性別 年齡 部門 1010 李勇 男 20 11 1011 劉晨 女 19 1012 王敏 女 22 12 1013 張立 男 21 13 部門號 部門名稱 電話 11 生產(chǎn)科 566 12 計劃科 578 13 一車間 467 14 科研所 (2)用Transact-SQ

16、L語句表示職工和部門之間的內(nèi)連接、左外部連接和右外部連接,在職工部門庫中實(shí)現(xiàn)其數(shù)據(jù)內(nèi)連接和各種外查詢操作。 三、實(shí)驗(yàn)環(huán)境 硬件:計算機(jī) 軟件:Windows 2000和SQL Server 2000 四、實(shí)驗(yàn)步驟及其結(jié)果: 1. 基本操作實(shí)驗(yàn) (1)簡單查詢實(shí)驗(yàn) (l)用Transact-SQL語句表示下列操作.在學(xué)生選課庫中實(shí)現(xiàn)其數(shù)據(jù)查詢操作: 求數(shù)學(xué)系學(xué)生的學(xué)號和姓名。 select Sno,Sname from Student where Sdept=MA; 求選修了課程的學(xué)生學(xué)號。 select distinct Sno from SC

17、; 求選修C1課程的學(xué)生學(xué)號和成績,并要求對查詢結(jié)果按成績降序排列,如果成績相同則按學(xué)號升序排列。 select Sno,Grade from SC where Cno=1 order by Grade desc,Sno asc; 獲選修課程C1且成績在80~90分之間的學(xué)生學(xué)號和成績,并將成績乘以系數(shù)0.8輸出。 select Sno,0.8*Grade from SC where Cno=1 and Grade between 80 and 90 ; 求數(shù)學(xué)系或計算機(jī)系姓張的學(xué)生的信息。 select Student.Sno,Sname,Ssex,Sage,Sdep

18、t,Cno,Grade from Student,SC where Student.Sno=SC.Sno and Sname like 張% and(Sdept=MA or Sdept=CS); 求缺少了成績的學(xué)生的學(xué)號和課程號。 select Sno,Cno from SC where Grade=0; 2)在圖書借閱庫中實(shí)現(xiàn)其查詢操作:將計算機(jī)類的書存入永久的計算機(jī)圖書表中,將借書日期在1999年以前的借閱記錄存入臨時的超期借閱表。 select * into 計算機(jī)圖書 from 圖書 where 類別=計算機(jī); select * into #超期借閱 fr

19、om 借閱 where 借閱日期< 1999.01.01; (2)連接查詢實(shí)驗(yàn) 用Transact-SQL語句表示,并在學(xué)生選課庫中實(shí)現(xiàn)下列數(shù)據(jù)連接查詢操作: 查詢每個學(xué)生的情況以及他(她)所選修的課程。 select Student.Sno,Sname,Ssex,Sage,Sdept,Cno from Student,SC where Student.Sno=SC.Sno; 求學(xué)生的學(xué)號、姓名、選修的課程名及成績。 select Student.Sno,Sname,Cname,Grade from Student,SC,Course where Stud

20、ent.Sno=SC.Sno and Course.Cno=SC.cno; 求選修C1課程且成績?yōu)?0分以上的學(xué)生學(xué)號、姓名及成績。 select Student.Sno,Sname,Grade from Student,SC where Student.Sno=SC.Sno and Cno=1 and Grade>90 ; 查詢每一門課的間接先行課(即先行課的先行課)。 select first.Cno,second.Cpno from Course first,Course second where first.Cpno=second.Cno; 2. 提高操作實(shí)驗(yàn)

21、 (1)按表1的格式,建立職工部門庫和職工表、部門,并向表中輸入數(shù)據(jù)。 表1 職工和部門表數(shù)據(jù) 職工表 部門表 職工號 姓名 性別 年齡 部門 1010 李勇 男 20 11 1011 劉晨 女 19 1012 王敏 女 22 12 1013 張立 男 21 13 部門號 部門名稱 電話 11 生產(chǎn)科 566 12 計劃科 578 13 一車間 467 14 科研所

22、(2)Transact-SQL語句表示職工和部門之間的內(nèi)連接、左外部連接和右外部連接,在職工部門庫中實(shí)現(xiàn)其數(shù)據(jù)內(nèi)連接和各種外查詢操作。 部門號 部門名稱 電話 11 生產(chǎn)科 566 12 計劃科 578 13 一車間 467 14 科研所 (1) create table 職工 (職工號 char(4) primary key, 姓名 varchar(max), 性別 char(2), 年齡 smallint, 部門 varchar(max)); create table 部門 (部門號 char(4) primar

23、y key, 部門名稱 varchar(max), 電話 varchar(max)); (2)外連接: 左連接: \ 右連接: use 職工部門 select * from 職工 right join 部門 on 職工.職工號=部門.部門號; 五、調(diào)試過程 use 職工部門 select * from 職工 right join 部門 on 職工.職工號=部門.部門號; 沒有加;號出錯,改過成功 六、實(shí)驗(yàn)結(jié)果 七、實(shí)驗(yàn)總結(jié) 本次實(shí)驗(yàn),通過用SQL語言對表進(jìn)行查詢操作,讓我更加熟練地掌握SQL的編程方法,了解到了平

24、時我們在文件查找數(shù)據(jù)與通過數(shù)據(jù)庫的查詢語句進(jìn)行查詢的不同,讓我更加認(rèn)同了數(shù)據(jù)庫這類軟件。 福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院實(shí)驗(yàn)報告 實(shí)驗(yàn)名稱:數(shù)據(jù)庫的視圖操作實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康暮鸵? (1)掌握 SQL Server中的視圖創(chuàng)建向?qū)Ш蛨D表創(chuàng)建向?qū)У氖褂梅椒ǎ? (2)加深對視圖和SQL Server圖表作用的理解。 (3)掌握數(shù)據(jù)庫安全性的操作方法。 二、實(shí)驗(yàn)內(nèi)容和原理 1. 基本操作實(shí)驗(yàn) (1)在SQL Server企業(yè)管理器中調(diào)出Create View Wizard(創(chuàng)建圖表向?qū)В?,按下列Transact-SQL描述的視圖定義,創(chuàng)建借閱_計算機(jī)圖書視圖。

25、 CREATE VIEW 借閱_計算機(jī)圖書 AS SELECT 圖書.*,借閱.* FROM 圖書,借閱 WHERE圖書.編號=借閱.書號AND圖書.類別=‘計算機(jī)’ (2)在SQL server企業(yè)管理器中調(diào)出Create View Wizard(創(chuàng)建圖表向?qū)В?完成在圖書-讀者數(shù)據(jù)庫中建立一個圖書_借閱圖表操作。要求該圖表包括圖書和借閱兩個表,并包括圖書與借閱之間的“圖書.書號=借閱.書號”外碼與被參照表之間的關(guān)聯(lián)。 (3)查看上述實(shí)驗(yàn)結(jié)果。如果結(jié)果有誤,予以糾正。 2. 提高操

26、作實(shí)驗(yàn) 在學(xué)生-課程數(shù)據(jù)庫中用Transact-SQL語句描述下列視圖定義。 (1)從學(xué)生表中建立查詢所有男(女)生信息的視圖STU_SEX。視圖的列名為SNO、SNAME、SSEX和SAGE。 (2)從課程表中建立查詢所有課程先修課信息的視圖課程_PRE。視圖的列名為課程號、課程名稱和先修課名稱。 (3)從選修表中建立查詢成績大于等于80信息的視圖STU_CJ1。視圖的列名為學(xué)號、課程號和成績。 (4)從學(xué)生、選修和課程三個表建立查詢學(xué)生選修情況的視圖STU_CJ2。視圖的列名為姓名、課程名稱和成績。 (5)從學(xué)生、選修和課程三個表建立查詢學(xué)生選修情況并且成績小于80的視圖STU

27、_CJ3。視圖的列名為姓名、課程名稱和成績。 (6)利用Transact-SQL命令修改視圖STU_SEX。把視圖的列名改為學(xué)號、姓名、性別和年齡,把加上“WITH CHECK OPTION”選項(xiàng)。 (7)刪除視圖STU_CJ3。 三、實(shí)驗(yàn)環(huán)境 硬件:計算機(jī) 軟件:Windows 2000和SQL Server 2000 四、實(shí)驗(yàn)步驟及其結(jié)果: 1. 基本操作實(shí)驗(yàn) (1)在SQL Server企業(yè)管理器中調(diào)出Create View Wizard(創(chuàng)建圖表向?qū)В?,按下列Transact-SQL描述的視圖定義,創(chuàng)建借閱_計算機(jī)圖書視圖。 CREATE V

28、IEW 借閱_計算機(jī)圖書 AS SELECT 圖書.*,借閱.* FROM 圖書,借閱 WHERE圖書.編號=借閱.書號AND圖書.類別=‘計算機(jī)’ (2)在SQL server企業(yè)管理器中調(diào)出Create View Wizard(創(chuàng)建圖表向?qū)В?完成在圖書_讀者數(shù)據(jù)庫中建立一個圖書_借閱圖表操作。要求該圖表包括圖書和借閱兩個表,并包括圖書與借閱之間的“圖書.書號=借閱.書號”外碼與被參照表之間的關(guān)聯(lián)。 (3)查看上述實(shí)驗(yàn)結(jié)果。如果結(jié)果有誤,予以糾正。 2. 提高操作實(shí)驗(yàn) 將自設(shè)計的數(shù)據(jù)庫應(yīng)用項(xiàng)目中的子模式,用Transa

29、ct-SQL語句描述其視圖定義并在SQL Server企業(yè)管理器中,用視圖創(chuàng)建向?qū)?chuàng)建這些視圖。 (1)下面用SQL語言創(chuàng)建借閱_計算機(jī)圖書視圖: 五、調(diào)試過程 在建立視圖課程_PRE時,命令能夠成功完成,但是查詢結(jié)果中先修課名稱為空,檢查SQL命令語句 ,先修課參照課程號,應(yīng)對COURSE定義別名,修改命令語句后,輸出結(jié)果正確。 六、實(shí)驗(yàn)結(jié)果 七、實(shí)驗(yàn)總結(jié) 通過這次實(shí)的創(chuàng)建視圖以及視圖的定義,讓我了解到了視圖表使我們更加容易直觀得到我們想要的信息組合,而又不變動原來的數(shù)據(jù)。通過對視圖的操作,了解到其實(shí)視圖并不是那么難,與基本表的操作差不多。只是他們的的屬性不

30、同:視圖是張?zhí)摫?,而基本表是?shí)實(shí)在在存在的表。這次實(shí)驗(yàn)學(xué)習(xí)到了視圖的重要性。 福建農(nóng)林大學(xué)計算機(jī)與信息學(xué)院實(shí)驗(yàn)報告 實(shí)驗(yàn)名稱:觸發(fā)器、存儲過程操作實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康暮鸵? (1)掌握 SQL Server中的觸發(fā)器的使用方法; (2)掌握存儲過程的操作方法。 二、實(shí)驗(yàn)內(nèi)容和原理 1. 基本操作實(shí)驗(yàn) 在讀者-圖書數(shù)據(jù)庫中用Transact-SQL語句描述下列功能: (1)在讀者表上建立一個DELETE類型的觸發(fā)器lianxi_del,觸發(fā)動作是顯示信息(已刪除讀者表中的數(shù)據(jù)),執(zhí)行下列語句: create trigger lianxi_del on 讀者 for de

31、lete as print ‘已刪除讀者表中的數(shù)據(jù)’ (2)建立一個查詢指定讀者號的閱讀信息的存儲過程List_jy,輸入?yún)?shù)為讀者號,如果沒有輸入讀者號,則要輸出提示信息。建立這個存儲過程的語句如下所示。  create procedure List_jy @p_dzh char(5) = null   as  if @p_dzh is null   begin     print ‘請輸入一個讀者號’     return   end else select 編號,姓名,書名,借閱時間 from 讀者,借閱,圖書 where 讀者.編號=借閱.讀者編號

32、 and 借閱.書號=圖書.書號 and 讀者.編號=@p_dzh 2. 提高操作實(shí)驗(yàn) 在學(xué)生-課程數(shù)據(jù)庫中用Transact-SQL語句描述下列功能: (1)為學(xué)生表建立一個名TRI_INSERT的INSERT觸發(fā)器。功能是當(dāng)用戶向?qū)W生表添加數(shù)據(jù)時,同時也把這些數(shù)據(jù)添加到stu表中。其中:學(xué)生表和表stu的結(jié)構(gòu)相同。 (2)為學(xué)生表建立一個名TRI_DELETE的DELETE觸發(fā)器。功能是當(dāng)用戶從學(xué)生表刪除數(shù)據(jù)時,同時把這些要刪除的數(shù)據(jù)添加到stu表中。其中:表student和表stu的結(jié)構(gòu)相同。 (3)創(chuàng)建一查詢存儲過程,過程名稱為P_CX。參數(shù)是學(xué)號,輸出信息是指定學(xué)號所應(yīng)的

33、姓名、課程名稱、成績。運(yùn)行時若沒有指定學(xué)號,則提示請輸入學(xué)號;若學(xué)號不存在則提示學(xué)號不存在。 (4)創(chuàng)建一統(tǒng)計存儲過程,過程名稱為P_CJTJ。參數(shù)是學(xué)號,輸出信息是指定學(xué)號的姓名、選課門數(shù)、平均分、總分、最高分、最低分。運(yùn)行時若沒有指定學(xué)號,則提示輸入學(xué)號;若學(xué)號不存在則提示學(xué)號不存在。 (5)創(chuàng)建一個實(shí)現(xiàn)求1—n所有數(shù)之和的存儲過程, 過程名稱為P_SUM。參數(shù)是n,輸出是前n個之和。如:n=100,則輸出5050。 (6)創(chuàng)建一個求指定區(qū)間[a,b]的隨機(jī)數(shù)的存儲過程, 過程名稱為P_RAND。參數(shù)據(jù)是a和b(a

34、機(jī) 軟件:Windows 2000和SQL Server 2000 四、算法描述及實(shí)驗(yàn)步驟 1、基本操作實(shí)驗(yàn) (1)在讀者表上建立一個DELETE類型的觸發(fā)器lianxi_del (2)建立一個查詢指定讀者號的閱讀信息的存儲過程List_jy 2. 提高操作實(shí)驗(yàn) 在學(xué)生-課程數(shù)據(jù)庫中用Transact-SQL語句描述下列功能: 1)為學(xué)生表建立一個名TRI_INSERT的INSERT觸發(fā)器。功能是當(dāng)用戶向?qū)W生表添加數(shù)據(jù)時,同時也把這些數(shù)據(jù)添加到stu表中。其中:學(xué)生表和表stu的結(jié)構(gòu)相同。 CREATE TRIGGER TRI_INSERT ON STUDENT FOR

35、INSERT AS INSERT INTO STU SELECT * FROM INSERTED (2)為學(xué)生表建立一個名TRI_DELETE的DELETE觸發(fā)器。功能是當(dāng)用戶從學(xué)生表刪除數(shù)據(jù)時,同時把這些要刪除的數(shù)據(jù)添加到stu表中。其中:表student和表stu的結(jié)構(gòu)相同。 CREATE TRIGGER TRI_DELETE ON STUDENT FOR DELETE AS INSERT INTO STU SELECT * FROM DELETED (3)創(chuàng)建一查詢存儲過程,過程名稱為P_CX。參數(shù)是學(xué)號,輸出信息是指定學(xué)號所應(yīng)的姓名、課程名稱、成績。運(yùn)行時若沒有指

36、定學(xué)號,則提示請輸入學(xué)號;若學(xué)號不存在則提示學(xué)號不存在。 create procedure P_CX @sno char(10) =null as if @sno is null begin print 請輸入一個學(xué)號 return end else if(not exists (select * from student where sno=@sno)) print 學(xué)號不存在 else select sname,o,grade from student,course,sc where student.sno=sc.sno and o=o and student

37、.sno=@sno (4)創(chuàng)建一統(tǒng)計存儲過程,過程名稱為P_CJTJ。參數(shù)是學(xué)號,輸出信息是指定學(xué)號的姓名、選課門數(shù)、平均分、總分、最高分、最低分。運(yùn)行時若沒有指定學(xué)號,則提示輸入學(xué)號;若學(xué)號不存在則提示學(xué)號不存在。 create procedure P_CIJJ @sno char(10) =null as if @sno is null begin print 請輸入一個學(xué)號 return end else if(not exists (select * from student where sno=@sno)) print 學(xué)號不存在 else select

38、sname,count(cno) 門數(shù),avg(grade) 平均分,sum(grade) 總分,max(grade) 最高分,min(grade) 最低分 from sc,student where student.sno=@sno group by sname (5)創(chuàng)建一個實(shí)現(xiàn)求1—n所有數(shù)之和的存儲過程, 過程名稱為P_SUM。參數(shù)是n,輸出是前n個之和。如:n=100,則輸出5050。 create procedure P_SUM @n int, @sum int output as declare @i int set @sum=0 set @i=0 whi

39、le(@i<=@n) begin set @sum=@sum+@i set @i=@i+1 end (6)創(chuàng)建一個求指定區(qū)間[a,b]的隨機(jī)數(shù)的存儲過程, 過程名稱為P_RAND。參數(shù)據(jù)是a和b(a

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!