大數(shù)據(jù)庫試驗(yàn)報(bào)告材料5_第1頁
大數(shù)據(jù)庫試驗(yàn)報(bào)告材料5_第2頁
大數(shù)據(jù)庫試驗(yàn)報(bào)告材料5_第3頁
大數(shù)據(jù)庫試驗(yàn)報(bào)告材料5_第4頁
大數(shù)據(jù)庫試驗(yàn)報(bào)告材料5_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、標(biāo)準(zhǔn)文檔數(shù)據(jù)庫與表的基本操作實(shí)驗(yàn)報(bào)告項(xiàng)目名稱 數(shù)據(jù)庫與表的基本操作專業(yè)班級(jí)軟件工程 1307 班學(xué) 號(hào) 3901130721 姓 名 譚淇蔚實(shí)驗(yàn)成績(jī):批閱教師:2015 年 5 月 11 日標(biāo)準(zhǔn)文檔實(shí)驗(yàn) 4存儲(chǔ)過程實(shí)驗(yàn)學(xué)時(shí):4每組人數(shù):1實(shí)驗(yàn)類型:2(1:基礎(chǔ)性 2:綜合性3:設(shè)計(jì)性4 :研究性)實(shí)驗(yàn)要求:1( 1:必修 2:選修3:其它)實(shí)驗(yàn)類別:3(1:基礎(chǔ) 2 :專業(yè)基礎(chǔ)3 :專業(yè) 4:其它)、實(shí)驗(yàn)?zāi)康睦斫獯鎯?chǔ)過程的概念、建立和調(diào)用方法。進(jìn)一步熟悉 SQL語句對(duì)數(shù)據(jù) 庫進(jìn)行完整性控制的方法。、實(shí)驗(yàn)內(nèi)容1、建立一個(gè)新的銷售數(shù)據(jù)庫,包含五張表,每張表至少需要10 條記錄( 1) /* 員工人

2、事表 employee */emp nochar(5)Not nullprimary key員工編號(hào)emp namechar(10)員工姓名sexchar(1)性別deptchar(4)所屬部門titlechar(6)職稱date hireddatetime到職日birthdaydatetime生日salaryint薪水a(chǎn)ddrchar(50)null住址2)/* 客戶表customer */cust idchar(5)Not nullprimary key客戶號(hào)cust namechar(20)客戶名稱addrchar(40)客戶住址tel nochar(10)客戶電話zipchar(6)郵

3、政編碼3)/* 銷售主表 sales */order nointNot nullprimary key訂單編號(hào)cust idchar(5)客戶號(hào)標(biāo)準(zhǔn)文檔sale idchar(5)業(yè)務(wù)員編號(hào)tot amtnumeric(9,2)訂單金額order datedatetime訂貨日期ship datedatetime出貨日期invoice nochar(10)發(fā)票號(hào)碼4) /* 銷貨明細(xì)表 sale item */order nointNot null,primary key訂單編號(hào)prod idchar(5)Not null,primary key產(chǎn)品編號(hào)qtyint銷售數(shù)量unit price

4、numeric(7,2)單價(jià)order datedatetimenull訂單日期5)/* 產(chǎn)品名稱表 product */pro idchar(5)Not nullprimary key產(chǎn)品編號(hào)prod namechar(20)Not null產(chǎn)品名稱2、建立表的同時(shí)創(chuàng)建表的約束。( 1) 為每張表建立主鍵約束。(2)通過拖放操作加入外鍵。(3)在表employee加入CHEC約K束:輸入的員工編號(hào)必須以 E開頭的 5 位數(shù)編號(hào),性別只能為 M/F。(4)為銷售主表 sales 中的發(fā)票編號(hào)字段建立 UNIQUE約束。3、利用存儲(chǔ)過程,給 employee 表添加一條業(yè)務(wù)部門員工的信息。4、利

5、用存儲(chǔ)過程從 employee、sales 、 customer 表的連接中返回所有業(yè)務(wù) 員的姓名、客戶姓名、銷售金額。5、利用存儲(chǔ)過程查找“劉德華”的員工編號(hào)、訂單編號(hào)、銷售金額。6、利用存儲(chǔ)過程查找姓“李”并且職稱為“職員”的員工的員工編號(hào)、訂 單編號(hào)、銷售金額。7、利用存儲(chǔ)過程計(jì)算出訂單編號(hào)為 10003 的訂單的銷售金額。三、實(shí)驗(yàn)要求:1熟悉 SQL SERVER工 作環(huán)境;2建立銷售數(shù)據(jù)庫 3復(fù)習(xí)有關(guān)約束與存儲(chǔ)過程的 SQL語言命令。 4備份數(shù)據(jù)庫,作為實(shí)驗(yàn) 5 的操作數(shù)據(jù)庫。標(biāo)準(zhǔn)文檔四、實(shí)驗(yàn)步驟1創(chuàng)建銷售數(shù)據(jù)庫,并建表、修改,要求將自己的信息包含其中;2、利用存儲(chǔ)過程,給 empl

6、oyee 表添加一條業(yè)務(wù)部門員工的信息。3、利用存儲(chǔ)過程從 employee、sales 、 customer 表的連接中返回所有業(yè)務(wù) 員的姓名、客戶姓名、銷售金額。4、利用存儲(chǔ)過程查找“劉德華”的員工編號(hào)、訂單編號(hào)、銷售金額。5、利用存儲(chǔ)過程查找姓“李”并且職稱為“職員”的員工的員工編號(hào)、訂 單編號(hào)、銷售金。五、實(shí)驗(yàn)結(jié)果1、建立一個(gè)新的銷售數(shù)據(jù)庫,包含五張表,每張表至少需要10 條記錄( 1) /* 員工人事表 employee */emp nochar(5)Not nullprimary key員工編號(hào)emp namechar(10)員工姓名sexchar(1)性別deptchar(4)所

7、屬部門titlechar(6)職稱date hireddatetime到職日birthdaydatetime生日salaryint薪水a(chǎn)ddrchar(50)null住址2)/* 客戶表customer */cust idchar(5)Not nullprimary key客戶號(hào)cust namechar(20)客戶名稱addrchar(40)客戶住址tel nochar(10)客戶電話zipchar(6)郵政編碼3)/* 銷售主表 sales */order nointNot nullprimary key訂單編號(hào)cust idchar(5)客戶號(hào)sale idchar(5)業(yè)務(wù)員編號(hào)tot

8、 amtnumeric(9,2)訂單金額order datedatetime訂貨日期ship datedatetime出貨日期invoice nochar(10)發(fā)票號(hào)碼4) /* 銷貨明細(xì)表 sale_item */標(biāo)準(zhǔn)文檔order nointNot null,primary key訂單編號(hào)prod idchar(5)Not null,primary key產(chǎn)品編號(hào)qtyint銷售數(shù)量unit pricenumeric(7,2)單價(jià)order datedatetimenull訂單日期5)/* 產(chǎn)品名稱表 product */pro idchar(5)Not nullprimary key產(chǎn)

9、品編號(hào)prod namechar(20)Not null產(chǎn)品名稱解: 首先寫出每一個(gè)表的創(chuàng)建語句 CREATE TABLEe mployee ( emp_no char(5) not null , emp_name char(10), sex char(1), dept char(4), title char(6), date_hired datetime, birthday datetime, salary int, addr CHAR (50), primary key ( emp_no) ) CREATE TABLEcu stomer ( cust_id char(5) not null

10、 cust_name char(20), addr char(40), tel_no char(10), zip char(6), primary key ( cust_id ) ) CREATE TABLEsa les ( order_no int not null , cust_id char(5), sale_id char(5), tot_amt numeric(9,2), order_date datetime, ship_date datetime,標(biāo)準(zhǔn)文檔invoice_no char(10), primary key ( order_no ) )CREATE TABL sEal

11、e_item( order_no int not null , prod_id char(5) not null , qty int,unit_price numeric(7,2), order_date datetime not null, primary key ( order_no,prod_id ) )CREATE TABLEp roduct( pro_id char(5) NOT NUL,L prod_name char(20) NOT NUL,L primary key ( pro_id )以上建表結(jié)果:為每一個(gè)表輸入數(shù)據(jù):標(biāo)準(zhǔn)文檔2、建立表的同時(shí)創(chuàng)建表的約束。( 1) 為每張表建

12、立主鍵約束。 已建立主鍵約束(2) 通過拖放操作加入外鍵。 步驟如下: 首先點(diǎn)擊數(shù)據(jù)庫,可以看見,數(shù)據(jù)庫下方有數(shù)據(jù)庫關(guān)系表:右鍵其,創(chuàng)建一個(gè)數(shù)據(jù)庫關(guān)系圖接著可以看見標(biāo)準(zhǔn)文檔選擇添加以上五個(gè)數(shù)據(jù)庫,拖動(dòng)鍵后便可以設(shè)立建立1) 在表employee加入CHEC約K束:輸入的員工編號(hào)必須以 E開頭的 5 位數(shù)編號(hào),性別只能為 M/F。標(biāo)準(zhǔn)文檔步驟:第一步右鍵第二步: 又按著鼠標(biāo)右鍵:標(biāo)準(zhǔn)文檔第三步:點(diǎn)擊添加接著再表達(dá)式里面寫著約束條件標(biāo)準(zhǔn)文檔(2) 為銷售主表 sales 中的發(fā)票編號(hào)字段建立 UNIQUE約束。 alter table sales add constraint order_no u

13、nique unique ( order_no );3、利用存儲(chǔ)過程,給 employee 表添加一條業(yè)務(wù)部門員工的信息。 create procedure proAddEmployee( emp_n cohar(5),emp_nam cehar(10),sex char(1),dept char(10),title char(6),date_hired datetime,birthday datetime,salary int,add rchar(50)asinsert into employee values( emp_no,emp_name,sex,dept,title,date_hir

14、ed,birthday,salar y,addr)goexec proAddEmployee E0022 , 羅 剛 , M, 業(yè) 務(wù) , 經(jīng) 理 ,2009-07-08,1988-02-03,13000, 都勻市 執(zhí)行后:刷新表格后,查看表格,可以發(fā)現(xiàn),表中寫入了信息結(jié)果為:標(biāo)準(zhǔn)文檔4、利用存儲(chǔ)過程從 employee、sales 、 customer 表的連接中返回所有業(yè)務(wù) 員的姓名、客戶姓名、銷售金額。create procedure findasselect employee.emp_name,customer.cust_name,sales.tot_amtfrom employee,

15、customer,saleswhere sales.sale_id = employee.emp_no and sales.cust_id customer.cust_idgo exec find標(biāo)準(zhǔn)文檔執(zhí)行后結(jié)果為:刷新后,旁邊的存儲(chǔ)過程的顯示為:5、利用存儲(chǔ)過程查找“劉德華”的員工編號(hào)、訂單編號(hào)、銷售金額。標(biāo)準(zhǔn)文檔create procedure find as select employee.emp_name,customer.cust_name,sales.tot_amt from employee,customer,saleswhere sales.sale_id = employe

16、e.emp_no and sales.cust_id customer.cust_idgoexec find執(zhí)行結(jié)果:標(biāo)準(zhǔn)文檔刷新后,可看見:此結(jié)果采用的數(shù)據(jù)為:Employee表:Sales 表:標(biāo)準(zhǔn)文檔6、利用存儲(chǔ)過程查找姓“李”并且職稱為職員”的員工的員工編號(hào)、訂單編號(hào)、銷售金額。create procedure findLi emp_namvea rchar(10)asselect employee.emp_no,sales.order_no,sales.tot_amtfrom employee,saleswhere employee.emp_no = sales.sale_id an

17、d employee.title ( employee.emp_name like emp_nam) ego= 職員 andexec findLi 結(jié)果:李%標(biāo)準(zhǔn)文檔刷新后,在旁邊可看見:結(jié)果的數(shù)據(jù)中所查詢的表的內(nèi)容為:Employee表:Sales 表:標(biāo)準(zhǔn)文檔7、利用存儲(chǔ)過程計(jì)算出訂單編號(hào)為 10003 的訂單的銷售金額。CREATE PROCEDUPRREO _ORDERorder_no varchar(6) asselect sales.tot_amtfrom saleswhere sales.order_no = order_no goexec PRO_ORDE1R0003 實(shí)驗(yàn)結(jié)果

18、:標(biāo)準(zhǔn)文檔刷新后發(fā)現(xiàn)左邊更新:附錄:實(shí)驗(yàn)示例1、模糊查詢create procedure sp_empname E_name varchar(10) as select a.emp_name,a.dept,b.tot_amt from employee a inner join sales b on a.emp_no=b.sale_idwhere a.emp_name like E_namegoexec sp_empname 陳%2、利用存儲(chǔ)過程計(jì)算出 E0014業(yè)務(wù)員的銷售總金額。 create procedure sp_saletot E_no char(5),p_tot int outp

19、ut as select p_tot=sum(tot_amt)from sales where sale_id=E_no go標(biāo)準(zhǔn)文檔declare tot_amt intexec sp_saletot E0014, tot_amt output select tot_amt六、實(shí)驗(yàn)結(jié)論存儲(chǔ)過程( Stored Procedure )是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成 特定功能的 SQL 語句集,存儲(chǔ)在數(shù)據(jù)庫中經(jīng)過第一次編譯后再次調(diào)用不需要 再次編譯,用戶通過指定存儲(chǔ)過程的名字并給出參數(shù)(如果該存儲(chǔ)過程帶有 參數(shù))來執(zhí)行它。存儲(chǔ)過程是數(shù)據(jù)庫中的一個(gè)重要對(duì)象,任何一個(gè)設(shè)計(jì)良好 的數(shù)據(jù)庫應(yīng)用程序都

20、應(yīng)該用到存儲(chǔ)過程。sql 中的存儲(chǔ)過程:CREATE PROCEDUR擁E有 者. 存儲(chǔ)過程名 ; 程序編號(hào)( 參數(shù)#1, 參數(shù) #1024)WITHRECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTIONFOR REPLICATIONAS 程序行其中存儲(chǔ)過程名不能超過 128個(gè)字。每個(gè)存儲(chǔ)過程中最多設(shè)定 1024 個(gè)參 數(shù)(SQL Server 7.0 以上版本 ), 參數(shù)的使用方法如下:參數(shù)名數(shù)據(jù)類型 VARYING =內(nèi)定值 OUTPUT 每個(gè)參數(shù)名前要有一個(gè)“ ”符號(hào), 每一個(gè)存儲(chǔ)過程的參數(shù)僅為該程序內(nèi) 部使用, 參數(shù)的類型除了 IMAGE外,其他

21、SQLS erver 所支持的數(shù)據(jù)類型都可 使用。 內(nèi)定值 相當(dāng)于我們?cè)诮?shù)據(jù)庫時(shí)設(shè)定一個(gè)字段的默認(rèn)值,這里是為 這個(gè)參數(shù)設(shè)定默認(rèn)值。 OUTPUT是 用來指定該參數(shù)是既有輸入又有輸出值的, 也就是在調(diào)用了這個(gè)存儲(chǔ)過程時(shí), 如果所指定的參數(shù)值是我們需要輸入的參 數(shù),同時(shí)也需要在結(jié)果中輸出的, 則該項(xiàng)必須為 OUTPU,T而如果只是做輸出 參數(shù)用,可以用 CURSO,R同時(shí)在使用該參數(shù)時(shí), 必須指定 VARYING和 OUTPUT 這兩個(gè)語句。分類:1 系統(tǒng)存儲(chǔ)過程以 sp_開頭, 用來進(jìn)行系統(tǒng)的各項(xiàng)設(shè)定 . 取得信息 . 相關(guān)管理工作。2 本地存儲(chǔ)過程 用戶創(chuàng)建的存儲(chǔ)過程是由用戶創(chuàng)建并完成某

22、一特定功能的存儲(chǔ)過程,事 實(shí)上一般所說的存儲(chǔ)過程就是指本地存儲(chǔ)過程。3 臨時(shí)存儲(chǔ)過程分為兩種存儲(chǔ)過程:一是本地臨時(shí)存儲(chǔ)過程, 以井字號(hào)(#) 作為其名稱的第一個(gè)字符, 則該存 儲(chǔ)過程將成為一個(gè)存放在 tempdb 數(shù)據(jù)庫中的本地臨時(shí)存儲(chǔ)過程,且只有創(chuàng) 建它的用戶才能執(zhí)行它 ;二是全局臨時(shí)存儲(chǔ)過程,以兩個(gè)井字號(hào) (#) 號(hào)開始,則該存儲(chǔ)過程將成標(biāo)準(zhǔn)文檔為一個(gè)存儲(chǔ)在 tempdb 數(shù)據(jù)庫中的全局臨時(shí)存儲(chǔ)過程,全局臨時(shí)存儲(chǔ)過程一 旦創(chuàng)建,以后連接到服務(wù)器的任意用戶都可以執(zhí)行它,而且不需要特定的權(quán) 限。4 遠(yuǎn)程存儲(chǔ)過程在 SQL Server2005 中,遠(yuǎn)程存儲(chǔ)過程 (Remote Stored P

23、rocedures) 是位 于遠(yuǎn)程服務(wù)器上的存儲(chǔ)過程, 通??梢允褂梅植际讲樵兒?EXECUTE命令執(zhí)行 一個(gè)遠(yuǎn)程存儲(chǔ)過程。5 擴(kuò)展存儲(chǔ)過程擴(kuò)展存儲(chǔ)過程 (Extended Stored Procedures) 是用戶可以使用外部程序 語言編寫的存儲(chǔ)過程,而且擴(kuò)展存儲(chǔ)過程的名稱通常以 xp_開頭。 格式:創(chuàng)建存儲(chǔ)過程create procedure sp_name參數(shù)名 類型, 參數(shù)名 類型asbeginend 以上格式還可以簡(jiǎn)寫成: create proc sp_name 參數(shù)名 類型, 參數(shù)名 類型 as beginend/* 注:“ sp_name”為需要?jiǎng)?chuàng)建的存儲(chǔ)過程的名字,該名字不可

24、以以阿拉 伯?dāng)?shù)字開頭 */調(diào)用存儲(chǔ)過程1. 基本語法: exec sp_name 參數(shù)名 刪除存儲(chǔ)過程1. 基本語法: drop procedure sp_name2. 注意事項(xiàng)(1) 不能在一個(gè)存儲(chǔ)過程中刪除另一個(gè)存儲(chǔ)過程, 只能調(diào)用另一個(gè)存儲(chǔ)過 程其他常用命令1. show procedure status顯示數(shù)據(jù)庫中所有存儲(chǔ)的存儲(chǔ)過程基本信息,包括所屬數(shù)據(jù)庫,存儲(chǔ)過 程名稱,創(chuàng)建時(shí)間等2. show create procedure sp_name顯示某一個(gè) mysql 存儲(chǔ)過程的詳細(xì)信息3、exec sp_helptext sp_name顯示你這個(gè) sp_name這個(gè)對(duì)象創(chuàng)建文本標(biāo)準(zhǔn)文

25、檔七、實(shí)驗(yàn)小結(jié)在本次實(shí)驗(yàn)中,我學(xué)會(huì)了存儲(chǔ)過程的參數(shù)的傳遞,以及參數(shù)的輸入和參數(shù)的 創(chuàng)建,以及使用存儲(chǔ)過程去實(shí)現(xiàn)功能的查詢,和打印輸出某些東西。實(shí)驗(yàn) 5觸發(fā)器與游標(biāo)實(shí)驗(yàn)學(xué)時(shí): 4每組人數(shù): 1實(shí)驗(yàn)類型: 2(1:基礎(chǔ)性 2 :綜合性 3 :設(shè)計(jì)性 4 :研究性)實(shí)驗(yàn)要求: 1( 1:必修 2 :選修 3 :其它)實(shí)驗(yàn)類別: 3(1:基礎(chǔ) 2 :專業(yè)基礎(chǔ) 3 :專業(yè) 4 :其它)一、實(shí)驗(yàn)?zāi)康倪M(jìn)一步熟悉 SQL語句對(duì)數(shù)據(jù)庫進(jìn)行完整性控制的方法;理解觸發(fā)器的概念、 定義方法和觸發(fā)條件。理解游標(biāo)的定義、打開、使用、關(guān)閉與釋放的方法。、實(shí)驗(yàn)內(nèi)容針對(duì)實(shí)驗(yàn) 4 所建銷售數(shù)據(jù)庫:1、設(shè)置一個(gè)觸發(fā)器,該觸發(fā)器僅允

26、許“ dbo”用戶可以刪除 employee 表內(nèi)數(shù) 據(jù),否則出錯(cuò)。2、針對(duì) employee 表寫一個(gè) DELETE觸發(fā)器。3、針對(duì) employee 表寫一個(gè) UPDATE觸發(fā)器。4、統(tǒng)計(jì) employee 表中員工的平均薪水, 輸出低于平均薪水的員工的人數(shù)以及 這些員工的姓名與薪水(使用游標(biāo)) 。三、實(shí)驗(yàn)要求:1熟悉 SQL SERVER工 作環(huán)境;標(biāo)準(zhǔn)文檔2恢復(fù)實(shí)驗(yàn) 4 所建銷售數(shù)據(jù)庫3復(fù)習(xí)有關(guān) SQL語句對(duì)數(shù)據(jù)庫進(jìn)行完整性控制的方法; 復(fù)習(xí)觸發(fā)器的概念、 定義方法和觸發(fā)條件。復(fù)習(xí)游標(biāo)的定義、打開、使用、關(guān)閉與釋放的方法約束與 存儲(chǔ)過程的 SQL語言命令。四、實(shí)驗(yàn)步驟1. 設(shè)置一個(gè)觸發(fā)

27、器, 該觸發(fā)器僅允許 “dbo”用戶可以刪除 employee 表內(nèi)數(shù) 據(jù),否則出錯(cuò)。2.針對(duì) employee表寫一個(gè) DELETE觸發(fā)器。3. 針對(duì) employee表寫一個(gè) UPDATE觸發(fā)器。4. 統(tǒng)計(jì) employee 表中員工的平均薪水,輸出低于平均薪水的員工的人數(shù)以 及這些員工的姓名與薪水(使用游標(biāo)) 。五、實(shí)驗(yàn)結(jié)果1. 設(shè)置一個(gè)觸發(fā)器,該觸發(fā)器僅允許“ dbo”用戶可以刪除 employee 表內(nèi)數(shù)據(jù),否則出錯(cuò)。創(chuàng)建命令為:create trigger EmploteeDelete on employee for deleteasif exists (select * from

28、deleted ) - 要?jiǎng)h除的是有數(shù)據(jù)的beginif user != dbo /* 如果不是 dbo用戶 */ rollback transactionend結(jié)果:標(biāo)準(zhǔn)文檔2. 針對(duì) employee 表寫一個(gè) DELETE觸發(fā)器。 創(chuàng)建命令:create trigger delete_disployon employeefor delete /* 默認(rèn) after*/as/* 操作 */SELECT* from employeeBEGINPRINT 已觸發(fā)觸發(fā)器了 END結(jié)果:標(biāo)準(zhǔn)文檔測(cè)試:發(fā)現(xiàn)輸出來的表已無 E00001,說明刪除成功再看輸出來的信息:標(biāo)準(zhǔn)文檔說明觸發(fā)器成功執(zhí)行3. 針

29、對(duì) employee 表寫一個(gè) UPDATE觸發(fā)器。 命令:create trigger UPDATE_DISPLOYON EMPLOYEEFOR UPDATEAS/* 操作 */select * from employeeBEGINPRINT 觸發(fā)了更新操作的觸發(fā)器 END結(jié)果:標(biāo)準(zhǔn)文檔更新前的數(shù)據(jù)為:更新后:消息處顯示為:標(biāo)準(zhǔn)文檔4. 統(tǒng)計(jì) employee表中員工的平均薪水, 輸出低于平均薪水的員工的人數(shù)以 及這些員工的姓名與薪水(使用游標(biāo)) 。 原先備份過數(shù)據(jù)庫,所以我先把數(shù)據(jù)后還原還原后, employee 表的數(shù)據(jù)為 :命令為:DECLAREC UR_EMPLOEE_NAME_SA

30、LSACRRYOLL CURSORF OR - 定 義 游 標(biāo) 名 為 CUR_EMPLOEE_NAME_SALARYSELECTE MPLOYEE.emp_no,EMPLOYEE.salaryFROME MPLOYEWE HEREMPLOYEE.salary (SELECTA VG(EMPLOYEE.salary) FROM EMPLOYE) EOPENC UR_EMPLOEE_NAME_SALAR打Y開 -游標(biāo)declare emp_noC HAR(5) , salary INT - 定義選取出來的局部變量 DECLAR ECOUN ITNT, AVG_SALA IRNYTset COUN

31、 =T 0SET AVG_SALA =R Y(SELECT AVG( EMPLOYEE.salary) FROM EMPLOYE) E PRINT 平均工資為: +convert(char(6), AVG_SALA)R-Y打印平均工資 fetch next fromCUR_EMPLOEE_NAME_SA LinAtRo Y emp_no , salary - - 讀數(shù)據(jù)到局部變量WHILE(FETCH_STA =T U0)SBEGINSELECT emp_no , salaryfetch next fromCUR_EMPLOEE_NAME_SALinAtRo Y emp_no , salary

32、set COU N=T COU+N1TEND-select COUNT-print str(COU)N Tprint 總共 +convert (char(2), COU)N+T 人 CLOSEC UR_EMPLOEE_NAME_SALA關(guān)RY閉 -游- 標(biāo) DEALLOCATEC UR_EMPLOEE_NAME_SALA釋RY放 -游- 標(biāo)標(biāo)準(zhǔn)文檔結(jié)果:標(biāo)準(zhǔn)文檔六、實(shí)驗(yàn)結(jié)論觸發(fā)器( trigger )是 SQLs erver 提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完 整性的一種方法, 它是與表事件相關(guān)的特殊的存儲(chǔ)過程, 它的執(zhí)行不是由程序調(diào) 用,也不是手工啟動(dòng), 而是由事件來觸發(fā), 比如當(dāng)對(duì)一個(gè)表

33、進(jìn)行操作 ( insert , delete , update )時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器與存儲(chǔ)過程的唯一區(qū)別是觸發(fā)器不能執(zhí)行 EXECUT語E 句調(diào)用, 而是在 用戶執(zhí)行 Transact-SQL 語句時(shí)自動(dòng)觸發(fā)執(zhí)行語法:DELIMITER |CREATE TRIGGER . ON dbo /dbo 代表該表的所有者FOR EACH ROWBEGIN-do somethingEND |標(biāo)準(zhǔn)文檔七、實(shí)驗(yàn)小結(jié)學(xué)會(huì)了觸發(fā)器的使用, 創(chuàng)建和對(duì)于更新時(shí)候的做的操作的設(shè)定和對(duì)于觸發(fā)器 然后顯示出已觸犯的效果,進(jìn)行了學(xué)習(xí)。學(xué)會(huì)了創(chuàng)建和聲明游標(biāo),學(xué)會(huì)使用游標(biāo)去讀取一行行數(shù)據(jù),學(xué)會(huì)了如何把 varchar 類型用函數(shù)轉(zhuǎn)換成 char 型,使得整型變量可以打

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論