mysql系列教程(十四)—–mysql存储过程和函数

MySQL

想要系统学习mysql基础知识的小伙伴可以看看前边的内容哦!,今天讲解mysql存储过程和函数!

存储过程和函数

什么是存储过程和函数?

事先经过编译并存储在数据库中的一段SQL语句的集合。

使用好处有哪些:

  • 简化应用开发人员的很多工作
  • 减少数据在数据库和应用服务器之间的传输
  • 提高了数据处理的效率

创建存储过程

create procedure 存储过程名 ([proc_parameter[,…]])
[characteristic…]routine_body

创建函数

create function 函数名([func_parameter[,…]])
returns type
[characteristic…]routine_body

创建存储过程或函数

proc_parameter: 
    [in|out|inout] param_name type
Func_paramter:
    param_name type
Type:
    任何有效的mysql数据类型
Characteristic:
    language sql(默认,且推荐)
    |[not] deterministic
    |{contains sql|no sql|reads sql data|modifies sql data}
    |sql security{definer|invoker}
    |comment ‘string’
Rountine_body:
    有效的sql 过程语句

调用存储过程或函数

调用存储过程

call 存储过程名(参数列表)

调用函数

Select 函数名(参数列表)

修改存储过程或函数

修改存储过程

alter procedure 存储过程名 [charactristic…]

修改函数

alter function 函数名 [charactristic…]
characteristic:
    {contains sql|no sql|reads sql data|modifies sql data}
    |sql security{definer|invoker}
    |comment ‘string’

删除存储过程或函数

一次只能删除一个存储过程或者函数,并且要求有该过程或函数的alter routine 权限

删除存储过程

drop procedure [if exists] 存储过程名

删除函数

drop function [if exists] 函数名

查看存储过程或函数

查看存储过程或函数的状态

show {procedure|function} status like 存储过程或函数名

查看存储过程或函数的定义

show create {procedure|function} 存储过程或函数名

通过查看information_schema.routines了解存储过程和函数的信息

select * from rountines where rounine_name =存储过程名|函
数名

本节先到这里,欢迎小伙伴补充指正哦!

发表评论