mysql 存储过程简单入门

1、存储过程介绍

​ 迄今为止,我们学过的大多数SQL语句都是针对一个或多个表的单条语句。但是并不是所有的操作都是可以用一条语句来完成的,经常有一些操作是需要多条语句配合才能完成。我们引入的存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

2、存储过程创建、调用、修改、删除

① 创建

语法:
DELIMITER $$ //更改mysql默认的分符号
CREATE PROCEDURE 名称()
BEGIN
    select * from user;
END
$$  //结束存储过程分割符
DELIMITER ; //还原存储过程分隔符
示例
DELIMITER $$    
CREATE PROCEDURE proc_name_demo()
BEGIN
    select * from user;
END
$$
DELIMITER;

②调用

语法:call 名称()
示例:call proc_name_demo()

③修改

ALTER PROCEDURE  名称 [characterustic...]
- {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}:指定子程序使用存储过程的限制。
    CONTAINS SQL:说明子程序包含SQL语句,但是不包含写数据语句
    NO SQL:说明子程序不包含SQL语句
    READS SQL DATA:说明子程序包含读数据读数据语句
    MODIFIES SQL DATA:说明子程序包含写数据语句

- SQL SECURITY {DEFINER | INVOKER}:指明谁有权限执行,默认值:DEFINER
    DEFINER:只有定义者才能执行
    INVOKER:拥有权限的调用者才可以执行

- COMMNET:注释信息

ps:
目前,MySQL还不提供对已存在的存储过程的代码修改
如果,一定要修改存储过程的内容,必须,先将存储过程删除之后,再重新编写代码,或者创建一个新的存储过程

④删除

语法:DROP PROCEDURE 名称;
示例:DROP PROCEDURE proc_namedemo;
示例2:DROP PROCEDURE if exists proc_namedemo; //删除存在的存储过程

猜你喜欢

转载自www.cnblogs.com/linhuaming/p/12497800.html