SQL資料庫儲存過程(二)

2022-05-04 02:51:06 字數 3582 閱讀 2247

變數

t-sql中的變數分為兩種:區域性變數和全域性變數

區域性變數是使用者可自定義的變數,它的作用範圍僅在程式內部。區域性變數必須先宣告,再使用,名稱必須以乙個@開頭。

宣告區域性變數 declare 以@開頭的變數名 型別[長度]

區域性變數賦值 set 區域性變數名=值

注意:區域性變數的宣告和賦值必須分開進行

全域性變數是sql系統內部事先定義好的變數、不用使用者參與定義,任何程式均可隨時呼叫;sql中共有30多個全域性變數,名稱都是以@@開頭,主要用於sql server的配置設定值和效能統計資料

運算子

算術運算子:+,-,*,/,%

賦值運算子:=

比較運算子 :>,<,>=,<=,=,!=,<>,!>,!<

邏輯運算子:

all,and,any,between,exists,in,like,not,or,some

字串串聯運算子 :+

按位運算子:&,|,^,~

運算子的優先順序

+(正)、-(負)、 ~ (按位 not)

*(乘)、/(除)、%(模)

+(加)、(+ 串聯)、-(減)

=,? >,? <,? >=,? <=,? <>,? !=,? !>,? !< 比較運算子

^(位異或)、&(位與)、|(位或)

notand

all、any、between、in、like、or、some

=(賦值) 

流程控制

begin…and:定義語句塊。 

break:退出最內層的while 迴圈。

continue重新開始while 迴圈。 

gotolabel從 label 所定義的 label 之後的語句處繼續進行處理。 

if…else定義條件以及當乙個條件為 false 時的操作。

return無條件退出。

waitfor為語句的執行設定延遲

while當特定條件為 true 時重複語句。

if...else語句

if…else語句是條件判斷語句,其中,else子句是可選的,最簡單的if語句沒有else子句部分。if…else語句用來判斷當某一條件成立時執行某段程式,條件不成立時執行另一段程式。sql server允許巢狀使用if…else語句,而且巢狀層數沒有限制。 

語法:

if 邏輯表示式

[else

]

begin…end語句塊

begin…end語句能夠將多個transact-sql語句組合成乙個語句塊,並將它們視為乙個單元處理。在條件語句和迴圈等控制流程語句中,當符合特定條件便要執行兩個或者多個語句時,就需要使用begin…end語句.相當於一對括號.

其語法形式為: 

begin

語句1或語句塊1

語句2或語句塊2

…end

while語句

while語句用於設定重複執行 sql 語句或語句塊的條件,只要指定條件為真,就重複執行語句.

其語法格式如下: 

while布林表示式

[ break ]

[ continue ]

break:程式完全跳出迴圈,結束while語句的執行 

continue:程式跳過continue語句後面的語句,回到while迴圈的第一行命令 

goto語句

goto語句是無條件轉移語句.goto語句可以使程式直接跳到指定的標有標號的位置處繼續執行,而位於goto語句和標號之間的程式將不會被執行。goto語句和識別符號可以用在語句塊、批處理和儲存過程中,

語法格式為:

goto 標號

--標號可以為數字與字元的組合,但必須以「:」結尾。 

return語句

return語句可以實現無條件終止執行的批處理命令、儲存過程或觸發器

declare @i int

set @i=0

while @i<10

begin

set @i=@i+1

if @i%3=0

return --終止整個批處理

print @i

end

使用return返回狀態值

retuen語句還可以返回狀態值,即return語句只能返回整數,在儲存過程中return不能返回空值,預設返回值是0。也可以用它替換輸出引數返回整型值。

儲存過程中return與output區別 

共同點:都返回值(但return只能返回int型別)   

不同點:

1. output是定義變數是不是可以返回值   

2. output沒有return從查詢或過程中無條件退出的功能

3. return返回值在函式和過程中不需要用output來定義 

常用系統儲存過程

sp_help

物件名用來檢視資料庫物件資訊

exec sp_helpp_a

sp_helptext

物件名用來顯示儲存過程和其它物件的文字 

exec sp_helptextp_a

sp_msgetversion

用來獲得microsoft sql server的當前版本

(select @@version可獲得更多版本資訊)

sp_helpdb

資料庫名

用來顯示資料庫相關資訊

擴充套件儲存過程

擴充套件儲存過程與普通儲存過程一樣,執行方法也相同。可將引數傳遞給擴充套件儲存過程,擴充套件儲存過程可返回結果,也可返回狀態。擴充套件儲存過程可用於擴充套件microsoft® sql server™ 2000的功能。 

擴充套件儲存過程既有系統自帶的,又可自行編寫.擴充套件儲存過程只能新增到 master 資料庫中 

關於擴充套件儲存過程只需簡單了解,下面有幾個常用的系統自帶的擴充套件儲存過程,

常用擴充套件儲存過程

xp_cmdshell 

為乙個作業系統外殼執行指定命令串,並作為文字返回輸出。

例: use master

exec xp_cmdshell 'dir d:\『

exec xp_cmdshell 'md d:\aa'

xp_dirtree

用於為在擴充套件儲存(xp)中命名的資料夾列出所有資料夾

例:

exec master..xp_dirtree 『d:\'
xp_subdirs

用於為在擴充套件儲存(xp)中命名的資料夾列出資料夾列表。只返回深度為一的檔案

例:

exec master..xp_subdirs 『d:\'

資料庫 儲存過程

儲存過程,stored procedure,是在大型資料庫系統中,一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。模擬於c中的函式。mysql與sqlserver是不同的。建立儲存過程 conn getconnec...

資料庫 儲存過程

在資料庫中,儲存過程屬於一種物件,是一種高效的安全的訪問資料庫的方法。下邊我們就資料庫中的儲存過程總結它的相關知識點。我們分為概述,實現和管理三個方面來總結。一,儲存過程的概述 1,概念 儲存過程 storedprocedure 是在資料庫伺服器端執行的一組t sql語句的集合,經編譯後存放在資料庫...

資料庫 儲存過程

一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 如果有引數 來執行它。系統儲存過程 以sp 開頭,用來進行系統的各項設定.取得資訊.相關管理工作。本地儲存過程 使用者建立的儲存過程是由使用者建立並完成某一特定功能的儲存過程,這跟各種程式語言裡使用...