存储过程

简介:

  存储过程(Stored {recedure)是在大型数据库中,一组为了完成特定功能的SQL语句集合,一次编译后永久有效,用户通过指定存储过程的名字,并给出参数,来执行它。存储过程是数据库中的一个重要对象,在数据量特别庞大的情况下利用存储过程打到倍速小效率提升

创建一个存储过程:

优点: 

  • 存储过程可以分装,并隐藏复杂的商业逻辑
  • 存储过程可以回传值,并可以接受参数
  • 存储过程无法使用select指令来运行,因为他是子程序,与查看表,数据表定义的函数不同
  • 存储过程可以用在数据校验,强制实行商业逻辑等。

缺点:

  • 存储过程,汪汪定制化于特定的数据局上,因为支持的编程语言不同,当切换到其它厂商的数据库系统时,需要重写原有的存储过程。
  • 存储过程的性能调校与撰写,受限于各数据库类型

创建存储过程:

  • IN 输入参数: 表示调用者想过程传入值(传入值可以是字面量或变量)
  • OUT 输出参数: 表示过程想调用者传出值(可以返回多个值)(传出值只能是变量)
  • INOUT 输入输出参数: 既表示调用者向过程传入值,有表示过程想调用者传出值(值只能是变量)
  • select  查询出参
delimiter $$ # 声明语句结束符,可以自定义
create procedure c_users(in c_pk VARCHAR(32), OUT c_name VARCHAR(64)) # 声明存储过程 c_users()可以理解为是一个函数/方法
BEGIN # 存储过程的开始符
	set c_pk = "8796093087748";  # 为变量赋值
	
	select p_name INTO c_name from users WHERE PK = c_pk; # 将查询结果放到 c_users中
	
end $$ # 存储过程的结束符

call c_users("8796093054980", @c_name) # 使用这个存储过程
select @c_name # 查询出参

 

 

posted @ 2022-06-25 13:48  JiZhaoG  阅读(23)  评论(0)    收藏  举报