美文网首页
存储过程初识

存储过程初识

作者: xpl111 | 来源:发表于2018-10-19 22:59 被阅读0次

一、注释

单行注释

-- 这是一个单行注释

多行注释

/*
这
是
多
行
注
释
*/

二、删除

-- 定义存储过程语句的结束符号为$$,为了跟sql语句的结束符进行区分
DELIMITER $$
-- 切换数据库
USE test_demo$$
-- 如果存储过程存在就删除
DROP PROCEDURE IF EXISTS test_demo$$
-- 创建名称为test_demo的存储过程
CREATE PROCEDURE test_demo()
-- begin end语句块,相当于java里的{   }
BEGIN
-- 打印日志
SELECT CONCAT("hello word\nhello word") AS mylog;
END$$

三、新建

-- 定义存储过程语句的结束符号为$$,为了跟sql语句的结束符进行区分
DELIMITER $$
-- 切换数据库
USE `guoya_official_dev`$$
-- 如果存储过程存在就删除
DROP PROCEDURE IF EXISTS `prc_init_student_demo`$$
-- 创建名称为test_demo的存储过程
CREATE PROCEDURE test_demo()
-- begin end语句块,相当于java里的{   }
BEGIN

END$$

-- 还原结束符为;
DELIMITER ;

四、 打印日志

-- 定义存储过程语句的结束符号为$$,为了跟sql语句的结束符进行区分
DELIMITER $$
-- 切换数据库
USE test_demo$$
-- 如果存储过程存在就删除
DROP PROCEDURE IF EXISTS test_demo$$
-- 创建名称为test_demo的存储过程
CREATE PROCEDURE test_demo()
-- begin end语句块,相当于java里的{   }
BEGIN
-- 打印日志
SELECT CONCAT("hello word\nhello word") AS mylog;
END$$

五、调用存储过程

5.1调用

call test_demo();

5.2结果

设置显示结果为文本


image.png

六、定义临时变量

DECLARE 变量名 变量类型 DEFAULT 初始值;

DECLARE v_log VARCHAR(1000) DEFAULT '日志跟踪:\n';

七、update语句

update 表名 set 字段=值 where 条件;
例:

UPDATE t_user_student_enroll t SET t.status=3 WHERE t.status=0

八、创建游标

DECLARE 游标名称 CURSOR FOR 查询语句;
例:

-- 定义游标
  DECLARE cur_1 CURSOR FOR 
  SELECT 
    t.enroll_id,
    t.customer_id,
    t.class_name,
    t.course_instance_name 
  FROM
    t_user_student_enroll t WHERE t.status=3;

九、遍历游标

9.1 打开游标

OPEN 游标名;
例:

OPEN cur_1;

9.2 循环控制器

-- 定义遍历数据结束标志
  DECLARE done INT DEFAULT FALSE;
-- 定义条件处理函数,当找不到记录的时候,执行set done=true,set是变量赋值
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE ;

9.3 获取游标中的数据并存到临时变量中

-- 获取游标中的下一条数据并存到临时变量中
FETCH NEXT FROM cur_1 INTO v_enroll_id,v_customer_id,v_class_name,v_course_instance_name;

9.4 while循环

WHILE not done DO
循环体
END WHILE;

9.5 if 分支

IF 条件 THEN
分支语句
ELSE
分支语句
END IF;

IF v_count = 0  THEN
  SET v_log=CONCAT(v_log,concat(v_customer_id,'新增客户信息;\n'));
ELSE
  SET v_log=CONCAT(v_log,concat(v_customer_id,'客户已存在;\n'));
end if;

9.6 关闭游标

CLOSE cur_1;

十、插入语句

insert into 表名 () values()
insert into 表名() select语句

相关文章

  • 存储过程初识

    一、注释 单行注释 多行注释 二、删除 三、新建 四、 打印日志 五、调用存储过程 5.1调用 5.2结果 设置显...

  • 触发器,存储过程 和 视图初识

    触发器 触发器作用:当操作了某张表时,希望同时触发一些动作/行为,可以使用触发器完成需求: 当向员工表插入一条记录...

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • MySQL批量添加数据

    创建存储过程 执行存储过程 删除存储过程

  • 17 存储过程

    过程: 函数: 过程是没有返回值的函数 存储过程: 存储过程语法 存储过程1--创建简单的存储过程 存储过程2--...

  • 存储过程

    详见存储过程详解 创建存储过程 使用存储过程 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一...

  • 存储过程与函数

    存储过程与函数存储过程的定义存储过程的创建存储过程的操作自定义函数 存储过程与函数 存储过程的定义 运行效率高 降...

  • 存储过程

    ps 不能修改过程体,要修改过程体必须先删除存储过程,再重建 mysql变量的术语分类: 1.用户变量:以"@"开...

  • 存储过程

    存储过程 过程,可以简单理解为是一个函数。 函数和过程的区别:函数总是向调用者返回数据,而过程没有数据返回。 Or...

  • 存储过程

    存储过程(Stored Procedure)是一个可编程的函数,是为了完成特定功能的SQL语句集;创建的存储过程保...

网友评论

      本文标题:存储过程初识

      本文链接:https://www.haomeiwen.com/subject/nsouzftx.html