星空网 > 软件开发 > 数据库

存储过程基础知识

什么是存储过程呢?
存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 
通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。

http://hovertree.com/h/bjaf/b05uxijr.htm

那为什么要用存储过程呢?
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权

那存储过程怎么用呢?
以下通过表Student 来了解存储过程,因为是要了解存储过程的简单用法,所以所有例子均很简单。
存储过程基础知识

无参数存储过程:
选出Student表中的所有信息,

create proc StuProc
as //此处 as 不可以省略不写
begin //begin 和 end 是一对,不可以只写其中一个,但可以都不写
select S#,Sname,Sage,Ssex from student
end
go

有参数存储过程:
全局变量
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。
选出指定姓名的学生信息:

存储过程基础知识
create proc StuProc
@sname varchar(100) 
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go
-- 何问起 hovertree.com 
exec StuProc '赵雷' //执行语句
存储过程基础知识

上面是在外部给变量赋值,也可以在内部直接给变量设置默认值

存储过程基础知识
create proc StuProc
@sname varchar(100)='赵雷'
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go
-- 何问起 hovertree.com 
exec StuProc
存储过程基础知识

也可以把变量的内容输出,使用output

存储过程基础知识
create proc StuProc
@sname varchar(100),
@IsRight int output //传出参数
as 
if exists (select S#,Sname,Sage,Ssex from student where sname=@sname)
set @IsRight =1
else
set @IsRight=0
go
-- 何问起 hovertree.com 
declare @IsRight int 
exec StuProc '赵雷' , @IsRight output
select @IsRight
存储过程基础知识

以上是全局变量,下面来了解局部变量
局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。
局部变量的定义:必须先用Declare命令定以后才可以使用,declare{@变量名 数据类型}
局部变量的赋值方法:set{@变量名=表达式}或者select{@变量名=表达式}
局部变量的显示:select @变量名

存储过程基础知识
create proc StuProc
as 
declare @sname varchar(100)
set @sname='赵雷'
select S#,Sname,Sage,Ssex from student where sname=@sname
go
-- 何问起 hovertree.com 
exec StuProc
存储过程基础知识

那如果是要把局部变量的数据显示出来怎么办呢?

存储过程基础知识
create proc StuProc
as 
declare @sname varchar(100)
set @sname=(select Sname from student where S#=01)
select @sname
go
-- 何问起 hovertree.com 
exec StuProc
存储过程基础知识

推荐:http://www.cnblogs.com/roucheng/p/3541165.html




原标题:存储过程基础知识

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

全球跨境物流:https://www.goluckyvip.com/tag/93037.html
跨境物流背景:https://www.goluckyvip.com/tag/93038.html
跨境电商物流排行:https://www.goluckyvip.com/tag/93039.html
关于跨境电商物流:https://www.goluckyvip.com/tag/93040.html
第三方跨境电商物流:https://www.goluckyvip.com/tag/93041.html
跨境电商第三方物流:https://www.goluckyvip.com/tag/93042.html
斥资210万美元,TikTok游说美国参议院阻止法案:https://www.goluckyvip.com/news/188213.html
大家推荐一下厦门三整天一个半天的旅游攻略:https://www.vstour.cn/a/365181.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流