版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元五ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)(十二)存儲(chǔ)過(guò)程主講教師:宋園園學(xué)習(xí)目標(biāo)【知識(shí)目標(biāo)】1.了解存儲(chǔ)過(guò)程的語(yǔ)法,并會(huì)使用存儲(chǔ)過(guò)程;
【技能目標(biāo)】1.掌握存儲(chǔ)過(guò)程的基本語(yǔ)法;2.使用存儲(chǔ)過(guò)程實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作;注:本課內(nèi)容參考教材單元五5.3存儲(chǔ)過(guò)程簡(jiǎn)介存儲(chǔ)過(guò)程(StoredProcedure)是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它。存儲(chǔ)過(guò)程簡(jiǎn)介各種大型關(guān)系數(shù)據(jù)庫(kù)都支持存儲(chǔ)過(guò)程。存儲(chǔ)過(guò)程是一組SQL語(yǔ)句的集合,相當(dāng)于C#語(yǔ)言中的語(yǔ)法。存儲(chǔ)過(guò)程在效率、安全性、可復(fù)用方面比普通的SQL語(yǔ)句有優(yōu)勢(shì),因此在實(shí)際項(xiàng)目中也有廣泛應(yīng)用。存儲(chǔ)過(guò)程的定義存儲(chǔ)過(guò)程(procedure)類似于C語(yǔ)言中的函數(shù)用來(lái)執(zhí)行管理任務(wù)或應(yīng)用復(fù)雜的業(yè)務(wù)規(guī)則存儲(chǔ)過(guò)程可以帶參數(shù),也可以返回結(jié)果類似于C語(yǔ)言中的函數(shù)intsum(inta,intb){ints;s=a+b;returns;}存儲(chǔ)過(guò)程相當(dāng)于C語(yǔ)言中的函數(shù)存儲(chǔ)過(guò)程可以包含哪些內(nèi)容存儲(chǔ)過(guò)程------------------------單個(gè)SELECT語(yǔ)句SELECT語(yǔ)句塊SELECT語(yǔ)句與邏輯控制語(yǔ)句可以包含存儲(chǔ)過(guò)程的優(yōu)點(diǎn)執(zhí)行速度更快允許模塊化程序設(shè)計(jì)提高系統(tǒng)安全性減少網(wǎng)絡(luò)流通量(因?yàn)榇鎯?chǔ)過(guò)程是保存在數(shù)據(jù)庫(kù)中的)存儲(chǔ)過(guò)程的分類1系統(tǒng)存儲(chǔ)過(guò)程由系統(tǒng)定義,存放在master數(shù)據(jù)庫(kù)中類似C語(yǔ)言中的系統(tǒng)函數(shù)系統(tǒng)存儲(chǔ)過(guò)程的名稱都以“sp_”開(kāi)頭或”xp_”開(kāi)頭2用戶自定義存儲(chǔ)過(guò)程由用戶在自己的數(shù)據(jù)庫(kù)中創(chuàng)建的存儲(chǔ)過(guò)程類似C語(yǔ)言中的用戶自定義函數(shù)常用的系統(tǒng)存儲(chǔ)過(guò)程系統(tǒng)存儲(chǔ)過(guò)程說(shuō)明sp_databases列出服務(wù)器上的所有數(shù)據(jù)庫(kù)。sp_helpdb報(bào)告有關(guān)指定數(shù)據(jù)庫(kù)或所有數(shù)據(jù)庫(kù)的信息sp_renamedb更改數(shù)據(jù)庫(kù)的名稱sp_tables返回當(dāng)前環(huán)境下可查詢的對(duì)象的列表sp_columns回某個(gè)表列的信息sp_help查看某個(gè)表的所有信息sp_helpconstraint查看某個(gè)表的約束sp_helpindex查看某個(gè)表的索引sp_stored_procedures列出當(dāng)前環(huán)境中的所有存儲(chǔ)過(guò)程。sp_password添加或修改登錄帳戶的密碼。創(chuàng)建存儲(chǔ)過(guò)程定義存儲(chǔ)過(guò)程的語(yǔ)法createproc[edure]存儲(chǔ)過(guò)程名@參數(shù)數(shù)據(jù)類型=默認(rèn)值output,……,@參數(shù)n數(shù)據(jù)類型=默認(rèn)值outputASSQL語(yǔ)句GO和C語(yǔ)言的函數(shù)一樣,參數(shù)可選參數(shù)分為輸入?yún)?shù)、輸出參數(shù)輸入?yún)?shù)允許有默認(rèn)值帶參數(shù)的存儲(chǔ)過(guò)程intsum(inta,intb){ints;s=a+b;returns;}c=sum(5,8)傳入?yún)?shù)值返回結(jié)果存儲(chǔ)過(guò)程在Asp.Net中的應(yīng)用執(zhí)行系統(tǒng)存儲(chǔ)過(guò)程執(zhí)行無(wú)參數(shù)的存儲(chǔ)過(guò)程執(zhí)行帶參數(shù)的存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程實(shí)例實(shí)例1:只返回單一記錄集的存儲(chǔ)過(guò)程。要求1:查詢表bankMoney的內(nèi)容的存儲(chǔ)過(guò)程
create
procedure
sp_query_bankMoney
as
select
*
from
bankMoney
go
exec
sp_query_bankMoney注*
在使用過(guò)程中只需要把中的SQL語(yǔ)句替換為存儲(chǔ)過(guò)程名,就可以了很方便吧!存儲(chǔ)過(guò)程實(shí)例實(shí)例2(向存儲(chǔ)過(guò)程中傳遞參數(shù)):加入一筆記錄到表bankMoney,并查詢此表中userID=
Zhangsan的所有存款的總金額。
Create
proc
insert_bank
@param1
char(10),@param2
varchar(20),@param3
varchar(20),@param4
int,@param5
int
output
with
encryption
---------加密
asinsert
bankMoney
(id,userID,sex,Money)
Values(@param1,@param2,@param3,
@param4)select
@param5=sum(Money)
from
bankMoney
where
userID='Zhangsan'
go在SQL
Server查詢分析器中執(zhí)行該存儲(chǔ)過(guò)程的方法是:
declare
@total_price
int
exec
insert_bank
'004','Zhangsan','男',100,@total_price
output
'總余額為'+convert(varchar,@total_price)
go存儲(chǔ)過(guò)程實(shí)例實(shí)例3:使用帶有復(fù)雜
Select
語(yǔ)句的簡(jiǎn)單過(guò)程:下面的存儲(chǔ)過(guò)程從四個(gè)表的聯(lián)接中返回所有作者(提供了姓名)、出版的書(shū)籍以及出版社。該存儲(chǔ)過(guò)程不使用任何參數(shù)。
USE
pubs
IF
EXISTS
(Select
name
FROM
sysobjects
Where
name
=
'au_info_all'
AND
type
=
'P')
Drop
PROCEDURE
au_info_all
GO
Create
PROCEDURE
au_info_all
AS
Select
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
GO
存儲(chǔ)過(guò)程實(shí)例au_info_all
存儲(chǔ)過(guò)程可以通過(guò)以下方法執(zhí)行:
EXECUTE
au_info_all
--
or
EXEC
au_info_all如果該過(guò)程是批處理中的第一條語(yǔ)句,則可使用:
au_info_all存儲(chǔ)過(guò)程實(shí)例實(shí)例4:使用帶有參數(shù)的簡(jiǎn)單過(guò)程
Create
PROCEDURE
au_info
@lastname
varchar(40),
@firstname
varchar(20)
AS
Select
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
Where
au_fname
=
@firstname
AND
au_lname
=
@lastname
GO存儲(chǔ)過(guò)程實(shí)例au_info
存儲(chǔ)過(guò)程可以通過(guò)以下方法執(zhí)行:
EXECUTE
au_info
'Dull',
'Ann'
--
or
EXECUTE
au_info
@lastname
=
'Dull',
@firstname
=
'Ann'
--
or
EXECUTE
au_info
@firstname
=
'Ann',
@lastname
=
'Dull'
--
or
EXEC
au_info
'Dull',
'Ann'
--
or
EXEC
au_info
@lastname
=
'Dull',
@firstname
=
'Ann'
--
or
EXEC
au_info
@firstname
=
'Ann',
@lastname
=
'Dull'存儲(chǔ)過(guò)程實(shí)例如果該過(guò)程是批處理中的第一條語(yǔ)句,則可使用:
au_info
'Dull',
'Ann'
--
or
au_info
@lastname
=
'Dull',
@firstname
=
'Ann'
--
or
au_info
@firstname
=
'Ann',
@lastname
=
'Dull'存儲(chǔ)過(guò)程實(shí)例實(shí)例5:使用帶有通配符參數(shù)的簡(jiǎn)單過(guò)程
Create
PROCEDURE
au_info2
@lastname
varchar(30)
=
'D%',
@firstname
varchar(18)
=
'%'
AS
Select
au_lname,
au_fname,
title,
pub_name
FROM
authors
a
INNER
JOIN
titleauthor
ta
ON
a.au_id
=
ta.au_id
INNER
JOIN
titles
t
ON
t.title_id
=
ta.title_id
INNER
JOIN
publishers
p
ON
t.pub_id
=
p.pub_id
Where
au_fname
LIKE
@firstname
AND
au_lname
LIKE
@lastname
GO存儲(chǔ)過(guò)程實(shí)例au_info2
存儲(chǔ)過(guò)程可以用多種組合執(zhí)行。下面只列出了部分組合:
EXECUTE
au_info2
--
or
EXECUTE
au_info2
'Wh%'
--
or
EXECUTE
au_
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建省泉州信息工程學(xué)院招聘參考題庫(kù)附答案
- 2025廣東茂名市高州市公益性崗位招聘1人備考題庫(kù)(第五批1人)附答案
- 2025年宿州市第一人民醫(yī)院社會(huì)化用人使用周轉(zhuǎn)池編制89名筆試備考題庫(kù)附答案
- AI賦能個(gè)性化學(xué)習(xí):實(shí)踐應(yīng)用與案例解析
- 2026四川天府銀行攀枝花分行春季社會(huì)招聘筆試備考題庫(kù)及答案解析
- 2025秋人教版道德與法治八年級(jí)上冊(cè)第三單元單元思考與行動(dòng)同步練習(xí)
- 2026福建泉州市安溪縣司法局招聘4人筆試備考題庫(kù)及答案解析
- 北京市海淀區(qū)學(xué)府幼兒園招聘筆試備考試題及答案解析
- 2026湖南長(zhǎng)沙市中醫(yī)康復(fù)醫(yī)院編外合同制人員招聘2人筆試備考題庫(kù)及答案解析
- 2026湖南長(zhǎng)沙市開(kāi)福區(qū)清水塘實(shí)驗(yàn)學(xué)校春季公開(kāi)招聘教師6人筆試參考題庫(kù)及答案解析
- 停車(chē)場(chǎng)道閘施工方案范本
- 2025年實(shí)驗(yàn)室安全事故案例
- 貝林妥單抗護(hù)理要點(diǎn)
- 衛(wèi)生院關(guān)于成立消除艾滋病、梅毒、乙肝母嬰傳播領(lǐng)導(dǎo)小組及職責(zé)分工的通知
- 鐵路更換夾板課件
- 小學(xué)語(yǔ)文教學(xué)能力提升策略
- 卡西歐手表WVA-M600(5161)中文使用說(shuō)明書(shū)
- 浙江中醫(yī)藥大學(xué)《高等數(shù)學(xué)Ⅱ》2025-2026學(xué)年期末試卷(A卷)
- 麻醉規(guī)培結(jié)業(yè)匯報(bào)
- 物流市場(chǎng)開(kāi)發(fā)管理制度
- DBJ04-T495-2025 《發(fā)震斷裂區(qū)域建筑抗震設(shè)計(jì)標(biāo)準(zhǔn)》
評(píng)論
0/150
提交評(píng)論