網上有個比較通俗易懂的理解:
儲存過程就是預先定義好的
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...