sql基礎之四 儲存過程

2021-08-04 16:22:52 字數 3001 閱讀 7672

網上有個比較通俗易懂的理解:

儲存過程就是預先定義好的

sql語句,然後儲存起來,等你用的時候再把自己所需要的匹配的sql語句用execute(即exec)呼叫就行!

使用儲存過程的優勢:

1.效能高:一條sql語句可以被多個地方使用,這樣進行複雜的操作時(比如多張表連表查詢)可將那些複雜的操作用儲存過程先封裝起來然後進行查詢!

2.高速並減少網路流量:只在創造時進行編譯,以後每次執行都不需要重新編譯,這與一般的sql語句(一般的sql語句每執行一次就編譯一次)相比就速度加快了很多!

3.安全:可以指定只有某使用者才可以進行訪問!

建立儲存過程:create procedure

儲存過程名

形參表as

儲存過程體

執行儲存過程:execute 儲存過程名 實參表

刪除儲存過程:drop procedure

儲存過程名

create table student1(/*建立表student1*/

sid int identity(1,1),/*自增1*/

sno varchar(50) primary key,/*主鍵*/

sname varchar(50),

sage int,

s*** varchar(5)

)執行結果如下:

/*無引數儲存過程之查詢所有資料*/

create proc stu1

as

begin /*與end成對出現,也可以成對省略不寫*/

select * from student1

endgo

exec stu1/*執行語句查詢*/

/*有引數的存數過程*/

create proc stu2

@sname varchar(150) /*宣告全域性變數*/

as select *from student1 where student1.sname=@sname

go exec stu2 '王剛' /*呼叫stu2 這個儲存過程並執行*/

go

/*有引數的存數過程之內部設定使用者名稱查詢使用者資訊*/

create proc stu3

@sname varchar(50)='李澤'/*宣告全域性變數並賦值即內部設定預設值*/

as select * from student1 where sname=@sname

-- select * from student1 where student1.sname=@sname

go exec stu3

drop proc stu3/*刪除儲存過程stu3*/

/*區域性變數*/

create proc stu4

as declare @sname varchar(50)/*宣告區域性變數*/

set @sname ='張明'

select * from student1 where sname=@sname

go exec stu4

/*儲存過程根據條件使用者學號查詢使用者年齡  */

create proc stu5

@sno varchar(50)

as declare @sage varchar(50)

set @sage=(select sage from student1 where sno=@sno)

--set @sage=(select sage from student1 s where s.sno=@sno)

select @sage

goexec stu5 '06'

/*新增使用者資訊*/

create proc stu6

@sno varchar(50),

@sname varchar(50),

@sage int,

@s*** varchar(5)

as

begin

insert into student1

(sno,sname,sage,s***)

values

(@sno,@sname,@sage,@s***)

end

go

exec stu6 '07','陳浩','26','男'

go /*儲存過程根條件(此例是學號)查詢使用者存在性*/

create proc stu7

@sno varchar(50),

@result varchar(8) output --輸出引數

as

begin

if (select count(1) from student1 where sno=@sno)>0

-- if exists (select sno from student1 s where s.sno=@sno)

set

@result='存在!'

else

set

@result='不存在!'

end

go

declare @result varchar(8)

exec stu7'09',@result output

print @result

go

結果:不存在

SQL基礎之儲存過程

網上有個比較通俗易懂的理解 儲存過程就是預先定義好的sql語句,然後儲存起來,等你用的時候再把自己所需要的匹配的sql語句用execute 即exec 呼叫就行!使用儲存過程的優勢 1.效能高 一條sql語句可以被多個地方使用,這樣進行複雜的操作時 比如多張表連表查詢 可將那些複雜的操作用儲存過程先...

SQL基礎 儲存過程

儲存過程 stored procedure 是一種儲存在資料庫中的批處理,它由一組完成特定功能的sql語句集組成,具有輸入引數,輸出引數以及返回值。資料庫表 查詢學生表並按姓名排序 go create procedure getorderedstudents asselect from studen...

SQL之儲存過程

定義變數 declare a int 變數賦值 set a 1 print a 變數結合查詢語句 不跟菠蘿乙個產地的水果資訊 select from fruit where source not in select source from fruit where name 菠蘿 declare so...