




已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)與表的基本操作實(shí)驗(yàn)報(bào)告項(xiàng)目名稱 數(shù)據(jù)庫(kù)與表的基本操作 專業(yè)班級(jí) 軟件工程1307班 學(xué) 號(hào) 3901130721 姓 名 譚淇蔚 實(shí)驗(yàn)成績(jī):批閱教師:2015年5 月 11 日實(shí)驗(yàn)4存儲(chǔ)過(guò)程實(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ǔ)過(guò)程的概念、建立和調(diào)用方法。進(jìn)一步熟悉SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行完整性控制的方法。二、實(shí)驗(yàn)內(nèi)容1、建立一個(gè)新的銷(xiāo)售數(shù)據(jù)庫(kù),包含五張表,每張表至少需要10條記錄。(1)/*員工人事表employee */emp_nochar(5)Not nullprimary key員工編號(hào)emp_namechar(10)員工姓名sexchar(1)性別deptchar(4)所屬部門(mén)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)/*銷(xiāo)售主表sales */order_nointNot nullprimary key訂單編號(hào)cust_idchar(5)客戶號(hào)sale_idchar(5)業(yè)務(wù)員編號(hào)tot_amtnumeric(9,2)訂單金額order_datedatetime訂貨日期ship_datedatetime出貨日期invoice_nochar(10) 發(fā)票號(hào)碼(4)/*銷(xiāo)貨明細(xì)表sale_item */order_nointNot null,primary key訂單編號(hào)prod_idchar(5)Not null,primary key產(chǎn)品編號(hào)qtyint 銷(xiāo)售數(shù)量unit_pricenumeric(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) 通過(guò)拖放操作加入外鍵。(3) 在表employee加入CHECK約束:輸入的員工編號(hào)必須以E開(kāi)頭的5位數(shù)編號(hào),性別只能為M/F。(4) 為銷(xiāo)售主表sales中的發(fā)票編號(hào)字段建立UNIQUE約束。3、利用存儲(chǔ)過(guò)程,給employee表添加一條業(yè)務(wù)部門(mén)員工的信息。4、利用存儲(chǔ)過(guò)程從employee、sales、customer表的連接中返回所有業(yè)務(wù)員的姓名、客戶姓名、銷(xiāo)售金額。5、利用存儲(chǔ)過(guò)程查找“劉德華”的員工編號(hào)、訂單編號(hào)、銷(xiāo)售金額。6、利用存儲(chǔ)過(guò)程查找姓“李”并且職稱為“職員”的員工的員工編號(hào)、訂單編號(hào)、銷(xiāo)售金額。7、利用存儲(chǔ)過(guò)程計(jì)算出訂單編號(hào)為10003的訂單的銷(xiāo)售金額。三、實(shí)驗(yàn)要求:1熟悉SQL SERVER 工作環(huán)境;2建立銷(xiāo)售數(shù)據(jù)庫(kù)3復(fù)習(xí)有關(guān)約束與存儲(chǔ)過(guò)程的SQL語(yǔ)言命令。 4備份數(shù)據(jù)庫(kù),作為實(shí)驗(yàn)5 的操作數(shù)據(jù)庫(kù)。四、實(shí)驗(yàn)步驟1創(chuàng)建銷(xiāo)售數(shù)據(jù)庫(kù),并建表、修改,要求將自己的信息包含其中;2、利用存儲(chǔ)過(guò)程,給employee表添加一條業(yè)務(wù)部門(mén)員工的信息。3、利用存儲(chǔ)過(guò)程從employee、sales、customer表的連接中返回所有業(yè)務(wù)員的姓名、客戶姓名、銷(xiāo)售金額。4、利用存儲(chǔ)過(guò)程查找“劉德華”的員工編號(hào)、訂單編號(hào)、銷(xiāo)售金額。5、利用存儲(chǔ)過(guò)程查找姓“李”并且職稱為“職員”的員工的員工編號(hào)、訂單編號(hào)、銷(xiāo)售金。五、實(shí)驗(yàn)結(jié)果1、建立一個(gè)新的銷(xiāo)售數(shù)據(jù)庫(kù),包含五張表,每張表至少需要10條記錄。(1)/*員工人事表employee */emp_nochar(5)Not nullprimary key員工編號(hào)emp_namechar(10)員工姓名sexchar(1)性別deptchar(4)所屬部門(mén)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)/*銷(xiāo)售主表sales */order_nointNot nullprimary key訂單編號(hào)cust_idchar(5)客戶號(hào)sale_idchar(5)業(yè)務(wù)員編號(hào)tot_amtnumeric(9,2)訂單金額order_datedatetime訂貨日期ship_datedatetime出貨日期invoice_nochar(10) 發(fā)票號(hào)碼(4)/*銷(xiāo)貨明細(xì)表sale_item */order_nointNot null,primary key訂單編號(hào)prod_idchar(5)Not null,primary key產(chǎn)品編號(hào)qtyint 銷(xiāo)售數(shù)量unit_pricenumeric(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)品名稱解:首先寫(xiě)出每一個(gè)表的創(chuàng)建語(yǔ)句CREATE TABLE employee(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 TABLE customer(cust_id char(5)not null, cust_name char(20), addr char(40), tel_nochar(10), zipchar(6), primary key (cust_id)CREATE TABLE sales(order_no int not null, cust_id char(5), sale_id char(5), tot_amt numeric(9,2), order_datedatetime, ship_datedatetime, invoice_nochar(10), primary key (order_no)CREATE TABLE sale_item (order_no int not null, prod_id char(5) not null, qty int, unit_price numeric(7,2),order_datedatetime not null, primary key (order_no,prod_id)CREATE TABLE product(pro_idchar(5) NOT NULL, prod_namechar(20) NOT NULL, primary key (pro_id)以上建表結(jié)果:為每一個(gè)表輸入數(shù)據(jù):2、建立表的同時(shí)創(chuàng)建表的約束。(1) 為每張表建立主鍵約束。已建立主鍵約束(2) 通過(guò)拖放操作加入外鍵。步驟如下:首先點(diǎn)擊數(shù)據(jù)庫(kù),可以看見(jiàn),數(shù)據(jù)庫(kù)下方有數(shù)據(jù)庫(kù)關(guān)系表:右鍵其,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)關(guān)系圖接著可以看見(jiàn)選擇添加以上五個(gè)數(shù)據(jù)庫(kù),拖動(dòng)鍵后便可以設(shè)立建立(1) 在表employee加入CHECK約束:輸入的員工編號(hào)必須以E開(kāi)頭的5位數(shù)編號(hào),性別只能為M/F。步驟:第一步右鍵第二步:又按著鼠標(biāo)右鍵:第三步:點(diǎn)擊添加接著再表達(dá)式里面寫(xiě)著約束條件(2) 為銷(xiāo)售主表sales中的發(fā)票編號(hào)字段建立UNIQUE約束。alter table sales add constraint order_nounique unique (order_no);3、利用存儲(chǔ)過(guò)程,給employee表添加一條業(yè)務(wù)部門(mén)員工的信息。create procedure proAddEmployee(emp_no char(5),emp_name char(10),sex char(1),dept char(10),title char(6),date_hired datetime,birthday datetime,salary int,addr char(50)asinsert into employee values(emp_no,emp_name,sex,dept,title,date_hired,birthday,salary,addr)goexec proAddEmployee E0022,羅剛,M,業(yè)務(wù),經(jīng)理,2009-07-08,1988-02-03,13000,都勻市執(zhí)行后:刷新表格后,查看表格,可以發(fā)現(xiàn),表中寫(xiě)入了信息結(jié)果為:4、利用存儲(chǔ)過(guò)程從employee、sales、customer表的連接中返回所有業(yè)務(wù)員的姓名、客戶姓名、銷(xiāo)售金額。create procedure findasselect employee.emp_name,customer.cust_name,sales.tot_amtfrom employee,customer,saleswhere sales.sale_id = employee.emp_no and sales.cust_id = customer.cust_idgoexec find執(zhí)行后結(jié)果為:刷新后,旁邊的存儲(chǔ)過(guò)程的顯示為:5、利用存儲(chǔ)過(guò)程查找“劉德華”的員工編號(hào)、訂單編號(hào)、銷(xiāo)售金額。create procedure findasselect employee.emp_name,customer.cust_name,sales.tot_amtfrom employee,customer,saleswhere sales.sale_id = employee.emp_no and sales.cust_id = customer.cust_idgoexec find執(zhí)行結(jié)果:刷新后,可看見(jiàn):此結(jié)果采用的數(shù)據(jù)為:Employee表:Sales表:6、利用存儲(chǔ)過(guò)程查找姓“李”并且職稱為“職員”的員工的員工編號(hào)、訂單編號(hào)、銷(xiāo)售金額。create procedure findLiemp_name varchar(10)asselect employee.emp_no,sales.order_no,sales.tot_amtfrom employee,saleswhere employee.emp_no = sales.sale_id and employee.title = 職員 and (employee.emp_name like emp_name)goexec findLi 李%結(jié)果:刷新后,在旁邊可看見(jiàn):結(jié)果的數(shù)據(jù)中所查詢的表的內(nèi)容為:Employee表:Sales表:7、利用存儲(chǔ)過(guò)程計(jì)算出訂單編號(hào)為10003的訂單的銷(xiāo)售金額。CREATE PROCEDURE PRO_ORDERorder_no varchar(6)asselect sales.tot_amtfrom saleswhere sales.order_no = order_nogoexec PRO_ORDER 10003實(shí)驗(yàn)結(jié)果:刷新后發(fā)現(xiàn)左邊更新:附錄:實(shí)驗(yàn)示例1、模糊查詢create procedure sp_empname E_name varchar(10) asselect a.emp_name,a.dept,b.tot_amtfrom employee a inner join sales bon a.emp_no=b.sale_id where a.emp_name like E_namegoexec sp_empname 陳%2、 利用存儲(chǔ)過(guò)程計(jì)算出E0014業(yè)務(wù)員的銷(xiāo)售總金額。create procedure sp_saletot E_no char(5),p_tot int output asselect p_tot=sum(tot_amt)from saleswhere sale_id=E_no godeclare tot_amt intexec sp_saletot E0014, tot_amt outputselect tot_amt六、實(shí)驗(yàn)結(jié)論存儲(chǔ)過(guò)程(Stored Procedure)是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL 語(yǔ)句集,存儲(chǔ)在數(shù)據(jù)庫(kù)中經(jīng)過(guò)第一次編譯后再次調(diào)用不需要再次編譯,用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它。存儲(chǔ)過(guò)程是數(shù)據(jù)庫(kù)中的一個(gè)重要對(duì)象,任何一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫(kù)應(yīng)用程序都應(yīng)該用到存儲(chǔ)過(guò)程。sql中的存儲(chǔ)過(guò)程:CREATE PROCEDURE 擁有者.存儲(chǔ)過(guò)程名;程序編號(hào)(參數(shù)#1,參數(shù)#1024)WITHRECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTIONFOR REPLICATIONAS 程序行其中存儲(chǔ)過(guò)程名不能超過(guò)128個(gè)字。每個(gè)存儲(chǔ)過(guò)程中最多設(shè)定1024個(gè)參數(shù)(SQL Server 7.0以上版本),參數(shù)的使用方法如下:參數(shù)名數(shù)據(jù)類型VARYING =內(nèi)定值 OUTPUT每個(gè)參數(shù)名前要有一個(gè)“”符號(hào),每一個(gè)存儲(chǔ)過(guò)程的參數(shù)僅為該程序內(nèi)部使用,參數(shù)的類型除了IMAGE外,其他SQL Server所支持的數(shù)據(jù)類型都可使用。內(nèi)定值相當(dāng)于我們?cè)诮?shù)據(jù)庫(kù)時(shí)設(shè)定一個(gè)字段的默認(rèn)值,這里是為這個(gè)參數(shù)設(shè)定默認(rèn)值。OUTPUT是用來(lái)指定該參數(shù)是既有輸入又有輸出值的,也就是在調(diào)用了這個(gè)存儲(chǔ)過(guò)程時(shí),如果所指定的參數(shù)值是我們需要輸入的參數(shù),同時(shí)也需要在結(jié)果中輸出的,則該項(xiàng)必須為OUTPUT,而如果只是做輸出參數(shù)用,可以用CURSOR,同時(shí)在使用該參數(shù)時(shí),必須指定VARYING和OUTPUT這兩個(gè)語(yǔ)句。分類:1系統(tǒng)存儲(chǔ)過(guò)程以sp_開(kāi)頭,用來(lái)進(jìn)行系統(tǒng)的各項(xiàng)設(shè)定.取得信息.相關(guān)管理工作。2本地存儲(chǔ)過(guò)程用戶創(chuàng)建的存儲(chǔ)過(guò)程是由用戶創(chuàng)建并完成某一特定功能的存儲(chǔ)過(guò)程,事實(shí)上一般所說(shuō)的存儲(chǔ)過(guò)程就是指本地存儲(chǔ)過(guò)程。3臨時(shí)存儲(chǔ)過(guò)程分為兩種存儲(chǔ)過(guò)程:一是本地臨時(shí)存儲(chǔ)過(guò)程,以井字號(hào)(#)作為其名稱的第一個(gè)字符,則該存儲(chǔ)過(guò)程將成為一個(gè)存放在tempdb數(shù)據(jù)庫(kù)中的本地臨時(shí)存儲(chǔ)過(guò)程,且只有創(chuàng)建它的用戶才能執(zhí)行它;二是全局臨時(shí)存儲(chǔ)過(guò)程,以兩個(gè)井字號(hào)(#)號(hào)開(kāi)始,則該存儲(chǔ)過(guò)程將成為一個(gè)存儲(chǔ)在tempdb數(shù)據(jù)庫(kù)中的全局臨時(shí)存儲(chǔ)過(guò)程,全局臨時(shí)存儲(chǔ)過(guò)程一旦創(chuàng)建,以后連接到服務(wù)器的任意用戶都可以執(zhí)行它,而且不需要特定的權(quán)限。4遠(yuǎn)程存儲(chǔ)過(guò)程在SQL Server2005中,遠(yuǎn)程存儲(chǔ)過(guò)程(Remote Stored Procedures)是位于遠(yuǎn)程服務(wù)器上的存儲(chǔ)過(guò)程,通常可以使用分布式查詢和EXECUTE命令執(zhí)行一個(gè)遠(yuǎn)程存儲(chǔ)過(guò)程。5擴(kuò)展存儲(chǔ)過(guò)程擴(kuò)展存儲(chǔ)過(guò)程(Extended Stored Procedures)是用戶可以使用外部程序語(yǔ)言編寫(xiě)的存儲(chǔ)過(guò)程,而且擴(kuò)展存儲(chǔ)過(guò)程的名稱通常以xp_開(kāi)頭。格式:創(chuàng)建存儲(chǔ)過(guò)程create procedure sp_name參數(shù)名 類型,參數(shù)名 類型asbegin.end以上格式還可以簡(jiǎn)寫(xiě)成:create proc sp_name參數(shù)名 類型,參數(shù)名 類型asbegin.end/*注:“sp_name”為需要?jiǎng)?chuàng)建的存儲(chǔ)過(guò)程的名字,該名字不可以以阿拉伯?dāng)?shù)字開(kāi)頭*/調(diào)用存儲(chǔ)過(guò)程1.基本語(yǔ)法:exec sp_name 參數(shù)名刪除存儲(chǔ)過(guò)程1.基本語(yǔ)法:drop procedure sp_name2.注意事項(xiàng)(1)不能在一個(gè)存儲(chǔ)過(guò)程中刪除另一個(gè)存儲(chǔ)過(guò)程,只能調(diào)用另一個(gè)存儲(chǔ)過(guò)程其他常用命令1.show procedure status顯示數(shù)據(jù)庫(kù)中所有存儲(chǔ)的存儲(chǔ)過(guò)程基本信息,包括所屬數(shù)據(jù)庫(kù),存儲(chǔ)過(guò)程名稱,創(chuàng)建時(shí)間等2.show create procedure sp_name顯示某一個(gè)mysql存儲(chǔ)過(guò)程的詳細(xì)信息3、exec sp_helptext sp_name顯示你這個(gè)sp_name這個(gè)對(duì)象創(chuàng)建文本七、實(shí)驗(yàn)小結(jié)在本次實(shí)驗(yàn)中,我學(xué)會(huì)了存儲(chǔ)過(guò)程的參數(shù)的傳遞,以及參數(shù)的輸入和參數(shù)的創(chuàng)建,以及使用存儲(chǔ)過(guò)程去實(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語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行完整性控制的方法;理解觸發(fā)器的概念、定義方法和觸發(fā)條件。理解游標(biāo)的定義、打開(kāi)、使用、關(guān)閉與釋放的方法。二、實(shí)驗(yàn)內(nèi)容針對(duì)實(shí)驗(yàn)4所建銷(xiāo)售數(shù)據(jù)庫(kù):1、 設(shè)置一個(gè)觸發(fā)器,該觸發(fā)器僅允許“dbo”用戶可以刪除employee表內(nèi)數(shù)據(jù),否則出錯(cuò)。2、 針對(duì)employee表寫(xiě)一個(gè)DELETE觸發(fā)器。3、 針對(duì)employee表寫(xiě)一個(gè)UPDATE觸發(fā)器。4、 統(tǒng)計(jì)employee表中員工的平均薪水,輸出低于平均薪水的員工的人數(shù)以及這些員工的姓名與薪水(使用游標(biāo))。三、實(shí)驗(yàn)要求:1熟悉SQL SERVER 工作環(huán)境;2恢復(fù)實(shí)驗(yàn)4所建銷(xiāo)售數(shù)據(jù)庫(kù)3復(fù)習(xí)有關(guān)SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行完整性控制的方法;復(fù)習(xí)觸發(fā)器的概念、定義方法和觸發(fā)條件。復(fù)習(xí)游標(biāo)的定義、打開(kāi)、使用、關(guān)閉與釋放的方法約束與存儲(chǔ)過(guò)程的SQL語(yǔ)言命令。 四、實(shí)驗(yàn)步驟1.設(shè)置一個(gè)觸發(fā)器,該觸發(fā)器僅允許“dbo”用戶可以刪除employee表內(nèi)數(shù)據(jù),否則出錯(cuò)。2.針對(duì)employee表寫(xiě)一個(gè)DELETE觸發(fā)器。3.針對(duì)employee表寫(xiě)一個(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 employeefor delete asif exists (select * from deleted) -要?jiǎng)h除的是有數(shù)據(jù)的beginif user != dbo/*如果不是dbo用戶*/rollback transactionend結(jié)果:2. 針對(duì)employee表寫(xiě)一個(gè)DELETE觸發(fā)器。創(chuàng)建命令:create trigger delete_disployon employeefor delete/*默認(rèn)after*/as /*操作*/SELECT * from employeeBEGINPRINT 已觸發(fā)觸發(fā)器了END結(jié)果:測(cè)試:發(fā)現(xiàn)輸出來(lái)的表已無(wú)E00001,說(shuō)明刪除成功再看輸出來(lái)的信息:說(shuō)明觸發(fā)器成功執(zhí)行3. 針對(duì)employee表寫(xiě)一個(gè)UPDATE觸發(fā)器。命令:create trigger UPDATE_DISPLOYON EMPLOYEEFOR UPDATEAS /*操作*/select * from employeeBEGINPRINT 觸發(fā)了更新操作的觸發(fā)器END結(jié)果:更新前的數(shù)據(jù)為:更新后:消息處顯示為:4. 統(tǒng)計(jì)employee表中員工的平均薪水,輸出低于平均薪水的員工的人數(shù)以及這些員工的姓名與薪水(使用游標(biāo))。原先備份過(guò)數(shù)據(jù)庫(kù),所以我先把數(shù)據(jù)后還原還原后,employee表的數(shù)據(jù)為:命令為:DECLARE CUR_EMPLOEE_NAME_SALARY SCROLL CURSOR FOR -定義游標(biāo)名為 CUR_EMPLOEE_NAME_SALARY SELECT EMPLOYEE.emp_no,EMPLOYEE.salaryFROM EMPLOYEE WHERE EMPLOYEE.salary (SELECT AVG(EMPLOYEE.salary) FROM EMPLOYEE)OPEN CUR_EMPLOEE_NAME_SALARY -打開(kāi)游標(biāo)declare emp_no CHAR(5) , salary INT -定義選取出來(lái)的局部變量DECLARE COUNT INT,AVG_SALARY INTset COUNT = 0SET AVG_SALARY = (SELECT AVG(EMPLOYEE.salary) FROM EMPLOYEE)PRINT 平均工資為:+convert(char(6),AVG_SALARY)-打印平均工資fetch next from CUR_EMPLOEE_NAME_SALARY into emp_no , salary -讀數(shù)據(jù)到局部變量WHILE(FETCH_STATUS = 0)BEGINSELECT emp_no , salary fetch next from CUR_EMPLOEE_NAME_SALARY into emp_no , salaryset COUNT = COUNT+1END-select COUNT-print str(COUNT)print 總共+convert(char(2),COUNT)+人CLOSE CUR_EMPLOEE_NAME_SALARY -關(guān)閉游標(biāo)DEALLOCATE CUR_EMPLOEE_NAME_SALARY -釋放游標(biāo)結(jié)果:六、實(shí)驗(yàn)結(jié)論觸發(fā)器(trigger)是SQL server 提供給程序員和數(shù)據(jù)分析員來(lái)保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過(guò)程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由事件來(lái)觸發(fā),比如當(dāng)對(duì)一個(gè)表進(jìn)行操作( insert,delete, update)時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器與存儲(chǔ)過(guò)程的唯一區(qū)別是觸發(fā)器不能執(zhí)行EXECUTE語(yǔ)句調(diào)用,而是在用戶執(zhí)行Transact-SQL語(yǔ)句時(shí)自動(dòng)觸發(fā)執(zhí)行語(yǔ)法:DELIMITER |CREATE TRIGGER . ON dbo /dbo代表該表的所有者FOR EACH ROWBEGIN-do somethingEND |七、實(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型,使得整型變量可以打印出來(lái)。受益匪淺。附錄:實(shí)驗(yàn)示例1、寫(xiě)一個(gè)允許用戶一次
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 爆破安全培訓(xùn)試題及答案
- 膀胱腫瘤考試題及答案
- 安全作業(yè)考試題庫(kù)及答案
- 安全員試題及答案
- 安全管理試題及答案
- 中國(guó)受辱課件在線觀看
- 顧客為先的培訓(xùn)課件
- 群發(fā)中暑急救培訓(xùn)課件
- 村醫(yī)死因培訓(xùn)課件
- 原諒的幼兒繪本課件
- Unit 3 Same or Different?Section A 課件 人教版英語(yǔ)八年級(jí)上冊(cè)
- 【課件】新高三啟動(dòng)主題班會(huì):?jiǎn)⒑礁呷饓?mèng)未來(lái)
- 長(zhǎng)鑫存儲(chǔ)在線試題及答案
- 小學(xué)勞動(dòng)教育校本課程開(kāi)發(fā)實(shí)踐與研究
- 森林草原防火 無(wú)人機(jī)巡查技術(shù)規(guī)范 編制說(shuō)明
- 2025-2030中國(guó)發(fā)泡聚苯乙烯泡沫行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 不寐的中醫(yī)護(hù)理常規(guī)
- 《能源的科普講解》課件
- 天一大聯(lián)考·天一小高考2024-2025學(xué)年(下)高三第四次考試政治試題及答案
- 2025年安慶桐城經(jīng)開(kāi)區(qū)建設(shè)投資集團(tuán)有限公司招聘12人筆試參考題庫(kù)附帶答案詳解
- 2025-2030中國(guó)藥食同源行業(yè)市場(chǎng)運(yùn)行分析及市場(chǎng)前景預(yù)測(cè)研究報(bào)告
評(píng)論
0/150
提交評(píng)論