SQL语法整理(八)-存储过程

本文详细介绍了SQL中的存储过程,包括存储过程的概念、优点、创建与执行方法,以及在MySQL、MSSQL和Oracle中的语法差异。此外,还讨论了存储函数、变量使用、流程控制以及如何查看和删除存储过程。
摘要由CSDN通过智能技术生成

存储过程和函数

存储过程:为了完成特定的功能的一组sql的集合

优点:
提高sql执行效率
重用型(允许模块化设计)
减轻服务器的压力
安全性

  • 创建存储过程(mysql)

语法:
create procedure sp_name({proc_parameter[…]})
[characteristic …] routine_body

sp_name:存储过程名称
proc_parameter:存储过程的参数列表
characteristic:存储过程的特性
routine_body:SQL 语句的内容,可以用 begin…end 来标志 SQL 语句的开始和结束
proc_parameter 由 3 部分组成:输入输出类型、参数名和参数类型 形式:[in | out | inout] param_name type

characteristic 取值:
☞language sql:说明 routine_body 是由 SQL 语句组成
☞[not] deterministic:执行结果是否确定
☞{contains sql | no sql | reads sql data | modifies sql data}:

1、contains sql:子程序包含 SQL 语句,但不包含读或写数据的 SQL[默认]
2、no sql:子程序中不包含 SQL 语句
3、reads sql data:包含可读数据的语句
4、modifies sql data:包含可写数据语句

☞sql security {definer | invoker}:who 有权限来执行 1definer:只有定义者方可执行[默认]
2invoker:调用者可以执行
☞comment ‘string’:注释信息

变量名不要和字段名相同

  • 创建存储函数(MySQL)

语法
create function sp_name([func_parameter[…]]) returns type
[characteristic…] routine_body sp_name:存储函数名称 func_parameter:存储函数参数列表
returns type:指定返回值的类型
func_parameter 由 2 部分组成:参数名和参数类型 形式:param_name type

  • 创建存储过程(mssql)

语法:
create procedure | proc sp_name [{@参数类型}[=默认值][output], ]
as
sql 语句

创建不带参数的存储过程

eg: 
create proc get_employee
as 
select * from employee;

创建带参的存储过程

eg: 
create proc proc_employee_by_age(@minAge int,@maxAge int)
as
select * from employee where age between @minAge and @maxAge;

执行: exec proc_employee_by_age 14,26;

创建带输出参数的存储过程

eg: 
create proc proc_getName_byId(
@id int,@name varchar(20) output
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值