資料庫基礎介紹(5)SQL儲存過程詳細介紹及語法

2021-10-09 21:19:16 字數 3956 閱讀 4790

目錄

一、簡介

二、例項

1.不帶引數的儲存過程

2.資料查詢功能不帶引數的儲存過程

3.帶有輸入引數的儲存過程

4.求階乘之和 

5.帶有輸入引數的資料查詢功能的儲存過程

6. 帶有條件判斷的插入功能的儲存過程

7.儲存過程的自動執行

8. 監控儲存過程

建立儲存過程

sql server建立儲存過程:

create procedure 過程名

@parameter 引數型別

@paramater 引數型別  

asbegin

end執行儲存過程

execute 過程名

create procedure proc_sql1

asbegin

delclare @i int

set @i = 26

while @i <1

begin

print char(ascii('a') + @i) + '的ascii碼是:' + cast(ascii('a') + @i as varchar(5))

set @i  = @i +1

endendexec proc_sql1

輸出結果:

1 a的ascii碼是: 97

2 b的ascii碼是: 98  

3 c的ascii碼是: 99

~~~~~

26 z的ascii碼是:122

create procedure proc_sql2

asbegin

select * from employee where  salary > 2000

endexecute proc_sql2

在儲存過程中可以包含多個select語句,顯示姓名中含有「張」字的職工資訊及其所在的倉庫資訊

create procedure pro_sql3asbegin    

select * from employee where name like '%張%'    

select * from warehouse where warehouseno in (select warehouse from employee where name like '%張%')

endgoexecute pro_sql3

找出三個數字中最大的數

create proc proc_sql4

@num1 int,

@num2 int,

@num3 int

asbegin

declare @max int

if @num1>@num2

set @max = @num1

else

set @max = @num2

if @num3 > @max

set @max = @num3

print '3個數的中最大的數字是:'  +  cast (@max as varchar (20) )

endexecute proc_sql4  3 , 4 ,5

alter proc proc_sql5

@datasource int

asbegin

declare @sum int ,@temp int, @tempsum int

set @sum = 0

set @temp = 1

set @tempsum = 1

while @temp <= @datasource

begin

set @tempsum = @tempsum * @temp

set @sum = @sum + @tempsum

set @temp = @temp +1

endprint cast ( @datasource as varchar(50) ) + '的階乘之和為:' + cast (@sum as varchar(50))

endexecute proc_sql5  5

create proc proc_sql6

@minsalary int,

@maxsalary int

asbegin

select * from empolyee where salary > @minsalary and salary< @maxsalary

endexecute proc_sql6 8000,10000

create proc proc_sql7

@id varchar(30),

@deptno varchar(30),

@name varchaer(50),

@*** varchar(10),

@salary int(10)

asbegin

if exists (select * from employee where id = @id)

print 『該員工號已經存在,請輸入正確的id』

else

begin    

if(exists (select * from dept where de))

使用sp_procoption系統儲存過程即可自動執行乙個或者多個儲存過程,其語法格式如下:

sp_procoption [@procname=] 'procedure', [@optionname=] 'option', [@optionvalue=] 'value'

各個引數含義如下:

[@procname=] 'procedure': 即自動執行的儲存過程

[@optionname=] 'option':其值是startup,即自動執行儲存過程

[@optionvalue=] 'value':表示自動執行是開(true)或是關(false)

sp_procoption @procname='masterproc', @optionname='startup', @optionvalue='true'

利用sp_procoption系統函式設定儲存過程masterproc為自動執行

可以使用sp_monitor可以檢視sql server伺服器的各項執行引數,其語法格式如下:

sp_monitor

該儲存過程的返回值是布林值,如果是0,表示成功,如果是1,表示失敗。該儲存過程的返回集的各項引數的含義如下:

*last_run: 上次執行時間

*current_run:本次執行的時間

*seconds: 自動執行儲存過程後所經過的時間

*cpu_busy:計算機cpu處理該儲存過程所使用的時間

*io_busy:在輸入和輸出操作上花費的時間

*idle:sql server已經空閒的時間

*packets_received:sql server讀取的輸入資料報數

*packets_sent:sql server寫入的輸出資料報數

*packets_error:sql server在寫入和讀取資料報時遇到的錯誤數

*total_read: sql server讀取的次數

*total_write: sqlserver寫入的次數

*total_errors: sql server在寫入和讀取時遇到的錯誤數

*connections:登入或嘗試登入sql server的次數

資料庫5 SQL初識,DDL學習

基本表索引 定義刪除 sql structured query language sql是一種介於關係代數和關係演算之間的結構化查詢語言。功能 分類 特點 其中 模式 要建立模式,呼叫該命令的使用者必須擁有dba許可權,或者獲得了dba授予的create schema的許可權。語法 sql大小寫不敏...

SQL資料庫 儲存過程基礎知識

什麼是儲存過程 儲存過程由什麼來呼叫 儲存過程的優缺點 儲存過程和觸發器的區別 部分 演示 儲存過程是乙個預編譯的sql語句,優點是允許模組化的設計,就是說只需建立一次,以後在程式中就可以呼叫多次。如果某次操作需要執行多次sql,使用儲存過程比單純sql語句執行要快。可以用乙個 execute 儲存...

資料庫儲存過程基礎

1.建立簡單的儲存過程 create proc proc name as select from syscolumns where object name id crm customer 2 執行儲存過程 exec proc name 3 刪除儲存過程 drop proc proc name 4.帶...