存储过程优点与语法(无参,有参,返回值)
存储过程是数据库中必不可少的利器,之所以会广泛使用,当然是因为他有着很多的优点:
1.提高性能.
存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.减少网络流量
长长的SQL语句块只需要存储过程名代替,网络通信量减少,从而提高服务器效率.
3.减少注入式攻击,提高安全性
封装了SQL语句,避免了拼接SQL而导致的注入式攻击.
4.便于后期的修改与维护,还可以重复使用.
语法:
以表student为例,它有三个字段id,name,age;
创建一个存储过程:
无参数的:
取最大id值:
create proc GetMaxIdas
begin
select max(id) from student
end
执行:
exec GetMaxId
有参数的:
依据id查找学生姓名:
create proc GetName
@id int
as
begin
select name from student where id=@id
end
执行:
exec GetName 1
有返回值的:
依据id返回学生年龄:
create proc GetAge
(@id int,
@age int output)
--一定要用括号括起来,参数间用逗号隔开,输出参数要加output
as
begin
set @age=(select age from student where id=@id)
end
执行:
declare @Age int --要声明一个输出参数
exec GetAge 85 ,@Age output
删除存储过程
drop 存储过程名;
ok!