五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

關(guān)于SQL 存儲(chǔ)過程入門基礎(chǔ)(基礎(chǔ)知識(shí))

發(fā)布日期:2022-01-03 14:51 | 文章來源:腳本之家

大學(xué)里面對(duì)存儲(chǔ)過程沒有講到什么,工作了一段時(shí)間,對(duì)存儲(chǔ)過程還是沒有用到,根本不需要去寫存儲(chǔ)過程,可能是做的軟件方向的原因吧。為了以后發(fā)展,決定從零開始學(xué)習(xí)下。

這里看看存儲(chǔ)過程的定義,

存儲(chǔ)過程(Stored Procedure),是一組為了完成特定功能的SQL 語句,集經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫中,用戶通過指定存儲(chǔ)過程的名字并給出參數(shù),如果該存儲(chǔ)過程帶有參數(shù)來執(zhí)行。

在SQL Server 的系列版本中,存儲(chǔ)過程分為兩類:系統(tǒng)提供的存儲(chǔ)過程和用戶自定義存儲(chǔ)過程。

  系統(tǒng)SP,主要存儲(chǔ)master 數(shù)據(jù)庫中,并以sp_為前綴并且系統(tǒng)存儲(chǔ)過程主要是從系統(tǒng)表中獲取信息,從而為系統(tǒng)管理員管理SQL Server。

常用系統(tǒng)存儲(chǔ)過程有:

復(fù)制代碼 代碼如下:

exec sp_databases; --查看數(shù)據(jù)庫
exec sp_tables; --查看表
exec sp_columns student;--查看列
exec sp_helpIndex student;--查看索引
exec sp_helpConstraint student;--約束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存儲(chǔ)過程創(chuàng)建、定義語句
exec sp_rename student, stuInfo;--修改表、索引、列的名稱
exec sp_renamedb myTempDB, myDB;--更改數(shù)據(jù)庫名稱
exec sp_defaultdb 'master', 'myDB';--更改登錄名的默認(rèn)數(shù)據(jù)庫
exec sp_helpdb;--數(shù)據(jù)庫幫助,查詢數(shù)據(jù)庫信息
exec sp_helpdb master;

用戶自定義存儲(chǔ)過程是由用戶創(chuàng)建,并能完成某一特定功能,如:查詢用戶所需數(shù)據(jù)信息的存儲(chǔ)過程。

這里我們看看存儲(chǔ)過程的好處;

(1)重復(fù)使用。存儲(chǔ)過程可以重復(fù)使用,從而可以減少數(shù)據(jù)庫開發(fā)人員的工作量。

(2)提高性能。存儲(chǔ)過程在創(chuàng)建的時(shí)候就進(jìn)行了編譯,將來使用的時(shí)候不用再重新編譯。一般的SQL語句每執(zhí)行一次就需要編譯一次,所以使用存儲(chǔ)過程提高了效率。

(3)減少網(wǎng)絡(luò)流量。存儲(chǔ)過程位于服務(wù)器上,調(diào)用的時(shí)候只需要傳遞存儲(chǔ)過程的名稱以及參數(shù)就可以了,因此降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。

(4)安全性。參數(shù)化的存儲(chǔ)過程可以防止SQL注入式的攻擊,而且可以將Grant、Deny以及Revoke權(quán)限應(yīng)用于存儲(chǔ)過程。

好了,我們來看看創(chuàng)建的基本語法

復(fù)制代碼 代碼如下:

定義存儲(chǔ)過程的語法

CREATE PROC[EDURE] 存儲(chǔ)過程名

@參數(shù)1 數(shù)據(jù)類型 = 默認(rèn)值,

…… ,

@參數(shù)n 數(shù)據(jù)類型 OUTPUT

AS

SQL語句

GO
,參數(shù)是可選的
,參數(shù)分為輸入?yún)?shù)、輸出參數(shù)
,輸入?yún)?shù)允許有默認(rèn)值

這里來創(chuàng)建一個(gè)簡單的存儲(chǔ)過程

CREATE PROCEDURE UserLogin
@name varchar(20),
@password varchar(20)

AS

-- 定義一個(gè)臨時(shí)用來保存密碼的變量
--DECLARE @strPwd NVARCHAR(20) 這里先不介紹變量。稍后的文章會(huì)詳細(xì)講到
BEGIN
select * from userinfo where userName=@name and userPass=@password
END
GO

首先我們用簡單的sql查詢

select * from userinfo where userName='admin'

查詢結(jié)果:

---------------------

UserName UserPass

Admin Admin

現(xiàn)在我們來執(zhí)行我們的存儲(chǔ)過程
exec UserLogin admin,admin

--或這樣調(diào)用:
EXEC UserLogin @name='admin',@password='admin'

查詢結(jié)果:

---------------------

UserName UserPass

Admin Admin

注意,在SQL SERVER中,所有用戶定義的變量都以“@”開頭,OUTPUT關(guān)鍵字表示這個(gè)參數(shù)是用來輸出的,AS之后就是存儲(chǔ)過程內(nèi)容了。只要將以上代碼在“查詢分析器”里執(zhí)行一次,SQL SERVER就會(huì)在當(dāng)前數(shù)據(jù)庫中創(chuàng)建一個(gè)名為“UserLogin”的存儲(chǔ)過程。你可以打開“企業(yè)管理器”,選擇當(dāng)前操作的數(shù)據(jù)庫,然后在左邊的樹型列表中選擇"可編程性->存儲(chǔ)過程",此時(shí)就可以在右邊的列表中看到你剛剛創(chuàng)建的存儲(chǔ)過程了(如果沒有,刷新一下即可)。

看到了在數(shù)據(jù)中調(diào)用存儲(chǔ)過程的方法有兩種(這里EXEC與EXECUTE等效);

EXEC 過程名 參數(shù)值1,參數(shù)值2,....


或者

EXEC 參數(shù)1=參數(shù)值1,參數(shù)2=參數(shù)值2....

上面我們也看到了。

如果要?jiǎng)h除一個(gè)存儲(chǔ)過程,用drop

像這樣

復(fù)制代碼 代碼如下:

drop PROCEDURE UserLogin

創(chuàng)建這樣的存儲(chǔ)過程有什么用呢,不是只能在數(shù)據(jù)中查看賽。

我們在做web或者winform 程序,假設(shè)需要個(gè)登錄,好,我們可以調(diào)用用這個(gè)存儲(chǔ)過程來登錄,根據(jù)傳入的參數(shù),如果查詢出來有記錄,那么這條記錄在數(shù)據(jù)庫中存在,表示登錄成功,否則失敗。

這樣做的目的更加安全,可以防止sql注入。

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部