精华内容
下载资源
问答
  • MySQL存储过程学习整理,游标使用,参数输入输出 MySQL游标使用MySQL存储过程参数用法 MySQL PROCEDURE用法 一、 什么是存储过程 1、可以理解为 sql 语句集,可以同时执行多条sql,实现较复杂的逻辑。 2、关于...

                MySQL存储过程学习整理,游标使用,参数输入输出 MySQL游标使用MySQL存储过程参数用法 MySQL PROCEDURE用法

     

    一、 什么是存储过程

    1、可以理解为 sql 语句集,可以同时执行多条sql,实现较复杂的逻辑。

    2、关于存储过程,这里讲的比较好,请参考:https://www.cnblogs.com/chenpi/p/5136483.html

     

    二、简单的存储过程

    1、 语法:

    CREATE PROCEDURE pro_now() -- 存储过程名称,自定义
    BEGIN -- 开始存储过程
           # 需要执行操作的sql语句集,可对数据表 进行CRUD 操作
           -- insert some sql here
    end; -- 结束存储过程

     

    2、创建一个查询当前时间的存储过程:

    CREATE  PROCEDURE pro_now() 
    BEGIN
        SELECT now();
    end;


               3、调用存储过程: call pro_now();  -- call 关键字, "pro_now()" 存储过程名称

    4、查看已创建的存储过程: show PROCEDURE STATUS [ where name='pro_now'] ;

           补充: 关于mysql查看存储过程函数相关命令

    5、删除存储过程:DROP PROCEDURE pro_now; -- "pro_now" 存储过程名称

     

    三、创建带参数的存储过程

    1、 带输入参数的存储过程, 使用关键字: in

        a、示例如下:

            

    CREATE PROCEDURE pro_now_in(in time  VARCHAR(20) CHARACTER set "utf8")	
            -- CHARACTER set "utf8",设定字符集,解决中文乱码
    BEGIN
    	 SELECT now(),time;
    end;

    b、调用存储过程:

    set @time='当前时间';
    call pro_now_in(@time); --  call pro_now_in('当前时间'); 这样也可以

    c、结果如下:

     

    2、带输出参数的存储过程,使用关键字: out

          a、示例如下:

    CREATE PROCEDURE pro_now_out(out time  VARCHAR(20),out title VARCHAR(20) CHARACTER set utf8)
    BEGIN
    	 SELECT now(),'当前时间' into time , title;
    end;

     

          b、调用存储过程:

    call pro_now_out(@times,@title);
    SELECT @title AS "标题",@times AS "时间";

          c、结果如下:

     

    3、带输入、输出参数的存储过程,使用关键字: inout

          a、示例如下:

    CREATE PROCEDURE pro_now_inout(inout name VARCHAR(20),in title VARCHAR(10), out time VARCHAR(10))
    BEGIN
    	 SELECT CONCAT(name,'<--->',title) AS name,now() into name,time;
    end;

                      b、调用存储过程

    set @name='jack';
    set @title='toady';
    call pro_now_inout(@name,@title,@time);
    select @name as 'name and title',@time as 'time';

     

                      c、结果如下:    

     

    d、理解:

    • in (输入): name 、title
    • out (输出): name 、 time
    • CONCAT(name,'<--->',title) 对应 name 输出、 now() 对应 time 输出

     

    四、创建带流程控制语句的存储过程

    1、if 语句

           a、示例如下:

    CREATE PROCEDURE pro_if(in num INT)
         BEGIN
    	    DECLARE result VARCHAR(20) CHARACTER set  utf8 DEFAULT null;
    	    IF num = 0 THEN  -- 开始if判断,注意用一个等号"="
    	        set result='num 为0啦'; -- 满足条件
    	    ELSEIF num > 0 THEN -- 下一个if判断
    		set result='num 大于 0';
      	    ELSEIF num < 0 THEN
    		set result='num 小于 0';
    	    ELSE -- 所有条件不满足的情况下
    		set result='num is null or other status';
    	    end if; -- 结束if 判断 
    	    SELECT result;
     end;

           b、调用存储过程:

    call pro_if('33');


                      c、结果如下:

     

     

    2、case 语句

        a、示例如下:

    CREATE PROCEDURE pro_case(in num INT)
    BEGIN
    	DECLARE result VARCHAR(20) CHARACTER set  utf8 DEFAULT null;
    	case num  -- 开始case 判断
    	when  2 THEN  -- 满足条件执行
    		set result='num 值是2';
     	 when -2 THEN  
    		set result='num 值是-2';
    	else  -- 所有条件不满足,执行
    		set result='num 不等于2和-2';
    	end case ; -- 结束case语句
    	SELECT result;
    end;

     

        b、调用存储过程

    call pro_case(-2);

     

        c、结果如下:

     

    3、while 循环语句

         a、示例如下:

    CREATE PROCEDURE pro_while(in num INT)
    BEGIN
    	DECLARE i int;
    	DECLARE result int;
    	set i=0;
    	set result=0;
    	while i < num DO -- 开始while 循环
    		set result=result+i;
    		set i=i+1;
    	end while; -- 结束while 循环 
    	SELECT result,i;
    end;


                     b、调用存储过程:

    call pro_while(100);

     

        c、结果如下:

     

     

    五、创建带游标循环的存储过程

    1、示例如下:

    CREATE PROCEDURE pro_cursor(out count int)
    BEGIN
    	declare  paper_id  VARCHAR(1000) ; -- 论文主键id
    	declare doctroName VARCHAR(1000) character set gbk; -- 医生名称
    	DECLARE paper_hos VARCHAR(1000); -- 医院id
    	DECLARE paper_room      VARCHAR(100); -- 医生专业
    	declare done int DEFAULT false ; -- 自定义控制游标循环变量,默认false
    	DECLARE  my_cursor CURSOR for (SELECT id,authorName,hospitalId,room
    							from yee_article_paper_authorid ); -- 定义游标并输入结果集  
    	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE; -- 绑定控制变量到游标,游标循环结束自动转true 
    	OPEN my_cursor; -- 打开游标
    	myLoop:LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到  
    	FETCH my_cursor into paper_id,doctroName,paper_hos,paper_room ;  -- 将游标当前读取行的数据顺序赋予自定义变量12  
    	if done THEN -- 判断是否继续循环  
    		LEAVE myLoop;-- 结束循环
    	END IF;
    	 -- 自己要做的事情,在 sql 中直接使用自定义变量即可  
    	insert into temp(str_id,name,hospitalId,room) 	
    VALUES(paper_id,doctroName,paper_hos,paper_room);
    	COMMIT; -- 提交事务
      END  LOOP myLoop; -- 结束 自定义循环体
    	CLOSE my_cursor; -- 关闭游标
    	# 循环结束后,统计导入个数
    	SELECT count(id)  count from temp into count; -- 计算个数
    end

    补充: 该游标代码可能存在,循环多执行一次的问题,若不小心误导了之前的朋友,深感抱歉。

        MySQL游标循环 多执行一次的解决办法 : https://blog.csdn.net/HaHa_Sir/article/details/103390356 。

     

    参考资料:  MySql 存储过程简单使用(带参数,表CRUD)

           【MySQL】存储过程、游标、循环简单实例

             流程语句 if , case ,while 使用

     

    ---- 还有更多 .... 

    MySQL触发器资料整理创建触发器及查看、删除触发器

    MySQL存储过程学习整理,游标使用,参数输入输出

     MyBatis调用存储过程,MyBatis调用函数的使用方法

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

            MySQL创建视图

            MySQL WHILE和LOOP和REPEAT循环的用法区别 MySQL三种循环的区别 MySQL循环使用方法

          解决MySQL游标循环多执行一次的问题

     

     

     

    展开全文
  • 参考官方手册:https://dev.mysql.com/doc/refman/5.7/en/declare-handler.html DECLARE handler_action HANDLER FOR condition_value [, condition_value] ... statement handler_actio...

    DECLARE ... HANDLER语法

    参考官方手册:https://dev.mysql.com/doc/refman/5.7/en/declare-handler.html

    DECLARE handler_action HANDLER
        FOR condition_value [, condition_value] ...
        statement
    
    handler_action: {
        CONTINUE
      | EXIT
      | UNDO
    }
    
    condition_value: {
        mysql_error_code
      | SQLSTATE [VALUE] sqlstate_value
      | condition_name
      | SQLWARNING
      | NOT FOUND
      | SQLEXCEPTION
    }

    官方手册sqlstate与error code参考: https://dev.mysql.com/doc/refman/8.0/en/server-error-reference.html

    CONTINUE 与 EXIT 对比

    CONTINUE: 发送错误时继续执行后续代码
    EXIT: 发生错误时退出当前代码块(可能是子代码块或者main代码块)

    直接看例子

    CONTINUE

    mysql> CREATE TABLE d.handlerdemo1 (s1 INT, PRIMARY KEY (s1));
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> delimiter //
    
    mysql> CREATE PROCEDURE handlerdemo ()
           BEGIN
             DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @y = 1;
             
             TRUNCATE TABLE d.handlerdemo1;
    
             SET @x = 1;
             INSERT INTO d.handlerdemo1 VALUES (1);
    
             SET @x = 2;
             INSERT INTO d.handlerdemo1 VALUES (1);
    
             SET @x = 3;
           END;
           //
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> CALL handlerdemo()//
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT @x//
        +------+
        | @x   |
        +------+
        | 3    |
        +------+
        1 row in set (0.00 sec)

    注意@x是3在过程执行之后,这表明执行继续该过程的结束发生错误之后。如果该 DECLARE ... HANDLER语句不存在,MySQL会因为约束而EXIT在第二次INSERT失败后采取默认的action()PRIMARY KEY,并且 SELECT @x会返回 2。

    来看一下EXIT

    mysql> show create procedure handlerdemo1\G
    *************************** 1. row ***************************
               Procedure: handlerdemo1
                sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
        Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `handlerdemo1`()
    BEGIN
     DECLARE EXIT HANDLER FOR SQLSTATE '23000'SET @y = 1;
     TRUNCATE TABLE d.handlerdemo1;
    
     SET @x = 1;
     INSERT INTO d.handlerdemo1 VALUES (1);
    
     SET @x = 2;
     INSERT INTO d.handlerdemo1 VALUES (1);
    
     SET @x = 3;
    END
    character_set_client: utf8mb4
    collation_connection: utf8mb4_0900_ai_ci
      Database Collation: latin1_swedish_ci
    1 row in set (0.00 sec)
    
    mysql> call handlerdemo1();
    Query OK, 0 rows affected (0.26 sec)
    
    mysql> SELECT @x;
    +------+
    | @x   |
    +------+
    |    2 |
    +------+
    1 row in set (0.00 sec)

    SELECT @x 的确返回 2 。

     

     

     

    展开全文
  • 本文实例讲述了mysql存储过程用法。分享给大家供大家参考,具体如下: 概述: 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法; 存储过程跟触发器有点类似,都是...
  • MySQL 存储过程参数有三种类型:in、out、inout。它们各有什么作用和特点呢? 一、MySQL 存储过程参数(in) mysql 存储过程 “in” 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参数...

    MySQL 存储过程参数有三种类型:in、out、inout。它们各有什么作用和特点呢?

    一、MySQL 存储过程参数(in)
    mysql 存储过程 “in” 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参数,但对 in 类型参数的修改,对调用者(caller)来说是不可见的(not visible)。


    drop procedure if exists pr_param_in;
    create procedure pr_param_in
    (
    in id int -- in 类型的 MySQL 存储过程参数
    )
    begin
    if (id is not null) then
    set id = id + 1;
    end if;
    select id as id_inner;
    end;



    set @id = 10;
    call pr_param_in(@id);
    select @id as id_out;



    mysql> call pr_param_in(@id);
    +----------+
    | id_inner |
    +----------+
    | 11 |
    +----------+
    mysql> select @id as id_out;
    +--------+
    | id_out |
    +--------+
    | 10 |
    +--------+


    可以看到:用户变量 @id 传入值为 10,执行存储过程后,在过程内部值为:11(id_inner),但外部变量值依旧为:10(id_out)。

    二、MySQL 存储过程参数(out)
    MySQL 存储过程 “out” 参数:从存储过程内部传值给调用者。在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值。


    drop procedure if exists pr_param_out;
    create procedure pr_param_out
    (
    out id int
    )
    begin
    select id as id_inner_1; -- id 初始值为 null
    if (id is not null) then
    set id = id + 1;
    select id as id_inner_2;
    else
    select 1 into id;
    end if;
    select id as id_inner_3;
    end;



    set @id = 10;
    call pr_param_out(@id);
    select @id as id_out;



    mysql> set @id = 10;
    mysql>
    mysql> call pr_param_out(@id);
    +------------+
    | id_inner_1 |
    +------------+
    | NULL |
    +------------+
    +------------+
    | id_inner_3 |
    +------------+
    | 1 |
    +------------+
    mysql> select @id as id_out;
    +--------+
    | id_out |
    +--------+
    | 1 |
    +--------+


    可以看出,虽然我们设置了用户定义变量 @id 为 10,传递 @id 给存储过程后,在存储过程内部,id 的初始值总是 null(id_inner_1)。最后 id 值(id_out = 1)传回给调用者。

    三、MySQL 存储过程参数(inout)
    MySQL 存储过程 inout 参数跟 out 类似,都可以从存储过程内部传值给调用者。不同的是:调用者还可以通过 inout 参数传递值给存储过程。


    drop procedure if exists pr_param_inout;
    create procedure pr_param_inout
    (
    inout id int
    )
    begin
    select id as id_inner_1; -- id 值为调用者传进来的值
    if (id is not null) then
    set id = id + 1;
    select id as id_inner_2;
    else
    select 1 into id;
    end if;
    select id as id_inner_3;
    end;



    set @id = 10;
    call pr_param_inout(@id);
    select @id as id_out;



    mysql> set @id = 10;
    mysql>
    mysql> call pr_param_inout(@id);
    +------------+
    | id_inner_1 |
    +------------+
    | 10 |
    +------------+
    +------------+
    | id_inner_2 |
    +------------+
    | 11 |
    +------------+
    +------------+
    | id_inner_3 |
    +------------+
    | 11 |
    +------------+
    mysql>
    mysql> select @id as id_out;
    +--------+
    | id_out |
    +--------+
    | 11 |
    +--------+


    从结果可以看出:我们把 @id(10),传给存储过程后,存储过程最后又把计算结果值 11(id_inner_3)传回给调用者。 MySQL 存储过程 inout 参数的行为跟 C 语言函数中的引用传值类似。

    通过以上例子:如果仅仅想把数据传给 MySQL 存储过程,那就使用“in” 类型参数;如果仅仅从 MySQL 存储过程返回值,那就使用“out” 类型参数;如果需要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型参数。

    展开全文
  • 【鹏城万里】 发表于 ... MySQL 存储过程参数有三种类型:in、out、inout。 它们各有什么作用和特点呢? 一、MySQL 存储过程参数(in) MySQL 存储过程 “in” 参数:跟 C 语言的函数参数的值传递类似,
     
    

    【鹏城万里】 发表于 www.sqlstudy.com

    MySQL 存储过程参数有三种类型:in、out、inout。 它们各有什么作用和特点呢?

    一、MySQL 存储过程参数(in)

    MySQL 存储过程 “in” 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参数,但对 in 类型参数的修改, 对调用者(caller)来说是不可见的(not visible)。

    drop procedure if exists pr_param_in;
    
    create procedure pr_param_in
    (
       in id int -- in 类型的 MySQL 存储过程参数
    )
    begin
       if (id is not null) then
          set id = id + 1;
       end if;
    
       select id as id_inner;
    end;
    
    set @id = 10;
    
    call pr_param_in(@id);
    
    select @id as id_out;
    
    mysql> call pr_param_in(@id);
    +----------+
    | id_inner |
    +----------+
    |       11 |
    +----------+
    
    mysql> select @id as id_out;
    +--------+
    | id_out |
    +--------+
    | 10     |
    +--------+
    

    可以看到:用户变量 @id 传入值为 10, 执行存储过程后,在过程内部值为:11(id_inner), 但外部变量值依旧为:10(id_out)。

    二、MySQL 存储过程参数(out)

    MySQL 存储过程 “out” 参数:从存储过程内部传值给调用者。 在存储过程内部,该参数初始值为 null,无论调用者是否 给存储过程参数设置值。

    drop procedure if exists pr_param_out;
    
    create procedure pr_param_out
    (
       out id int
    )
    begin
       select id as id_inner_1;  -- id 初始值为 null
    
       if (id is not null) then
          set id = id + 1;
    
          select id as id_inner_2;
       else
          select 1 into id;
       end if;
    
       select id as id_inner_3;
    end;
    
    set @id = 10;
    
    call pr_param_out(@id);
    
    select @id as id_out;
    
    mysql> set @id = 10;
    mysql>
    mysql> call pr_param_out(@id);
    +------------+
    | id_inner_1 |
    +------------+
    |       NULL |
    +------------+
    
    +------------+
    | id_inner_3 |
    +------------+
    |          1 |
    +------------+
    
    mysql> select @id as id_out;
    +--------+
    | id_out |
    +--------+
    | 1      |
    +--------+
    

    可以看出,虽然我们设置了用户定义变量 @id 为 10, 传递 @id 给存储过程后,在存储过程内部,id 的初始值总是 null(id_inner_1)。 最后 id 值(id_out = 1)传回给调用者。

    三、MySQL 存储过程参数(inout)

    MySQL 存储过程 inout 参数跟 out 类似,都可以从存储过程内部传值给调用者。 不同的是:调用者还可以通过 inout 参数传递值给存储过程。

    drop procedure if exists pr_param_inout;
    
    create procedure pr_param_inout
    (
       inout id int
    )
    begin
       select id as id_inner_1;  -- id 值为调用者传进来的值
    
       if (id is not null) then
          set id = id + 1;
    
          select id as id_inner_2;
       else
          select 1 into id;
       end if;
    
       select id as id_inner_3;
    end;
    
    set @id = 10;
    
    call pr_param_inout(@id);
    
    select @id as id_out;
    
    mysql> set @id = 10;
    
    mysql>
    mysql> call pr_param_inout(@id);
    +------------+
    | id_inner_1 |
    +------------+
    |         10 |
    +------------+
    
    +------------+
    | id_inner_2 |
    +------------+
    |         11 |
    +------------+
    
    +------------+
    | id_inner_3 |
    +------------+
    |         11 |
    +------------+
    mysql>
    mysql> select @id as id_out;
    +--------+
    | id_out |
    +--------+
    | 11     |
    +--------+
    

    从结果可以看出:我们把 @id(10),传给存储过程后, 存储过程最后又把计算结果值 11(id_inner_3)传回给调用者。 MySQL 存储过程 inout 参数的行为跟 C 语言函数中的引用传值类似。

    通过以上例子:如果仅仅想把数据传给 MySQL 存储过程,那就使用“in” 类型参数; 如果仅仅从 MySQL 存储过程返回值,那就使用“out” 类型参数; 如果需要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们, 此时,要使用“inout” 类型参数。

     

    本文由 www.sqlstudy.com 原创,版权所有,转载请注明作者和出处!

    本文链接:http://www.sqlstudy.com/sql_article.php?id=2008072103

    展开全文
  • 关于mysql时间戳存储过程用法查询昨日数据查询今日数据为方便以后调用,封装为存储过程,便于使用 查询昨日数据 以今日2019-8-7为例,则需获取昨日到今日凌晨时间戳,1565020800 - 1565107200 完整日期格式为2019-8-...
  • MySQL 存储过程的基本用法 2010-06-01 15:09 周八戒 cnblogs 我要评论(1) 字号:T | T 以下的文章主要是向大家描述的是MySQL 存储过程的实际应用,我前两天在相关网站看见的资料,觉得实用性很大,今天拿出来以...
  • MySQL提供了一个替代的条件语句CASE。 MySQL CASE语句使代码更加...下面讲讲MySQL 存储过程CASE语句用法。 1,CASE语法结构 CASE case_expression WHEN when_expression_1 THEN commands WHEN when_expression_2 ...
  • 2、存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。 3、存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。 4、存储过程运行比较稳定,不会有太多的错误。...
  • mysql存储程序相关用法总结

    千次阅读 2014-03-06 20:47:37
    mysql存储程序相关用法 存储函数 存储函数将向调用者返回结果 存储函数创建实例 mysql> delimiter $ //设置$为分隔符 mysql> create function get_carname(car_id int) //创建函数 参数为car_id  -> returns ...
  • 存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。 --------------------基本语法-------------------- 一.创建存储过程 create procedure sp_name() begin .........
  • 转自: ... set @id = 10; call pr_param_in(@id); select @id as id_out; mysql> call pr_param_in(@id); +----------+ | id
  • mysql存储过程中like用法

    千次阅读 2012-02-29 10:42:26
    这里的用法 insert into tbl_sm_tag (tag_id,soft_id) select v_tag_id,id from sm where soft_name like CONCAT('%',v_keyword,'%'); end if; set v_count = v_count + 1; if v_done=1 then leave cursor...
  • MYSQL 存储过程

    2020-04-27 19:00:48
    MYSQL 存储过程 存储过程 基础用法 存储过程在写的过程中会遇到一些设置变量等复杂操作,我们再次介绍一些基础函数用法 SET 变量名 = 值 , 注意 SET 赋值时,如果是sql 语句,sql语句必须用括号括起来; SET 值可以对...
  • php调用mysql存储过程

    2021-01-21 15:33:50
    前面转载了一篇《php调用mysql存储过程的文章》经过测试,发现文章中的方法似乎不可行! 调用带有select语句的存储过程就出现 PROCEDURE p can’t return a result set in the given context的错误。...
  • Mysql存储过程

    千次阅读 2018-12-02 09:05:20
    Mysql存储过程 一. 过程化sql  过程块sql主要有两种类型,几命名块和匿名块。匿名块每次执行时都要编译,而且不能存储到存储过程中,也不能在其他过程化sql块中调用,过程和函数时命名块,他们在编译时保存在...
  • mysql存储过程详解 1. 存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在...
  • 存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程。 在外部程序访问数据库时(例如 PHP...
  • mysql存储过程开荒

    千次阅读 2015-11-05 13:23:20
    这篇博客总结一下mysql中存储过程基本的用法——mysql存储过程开荒。 注意下面的示例可以在mysql管理工具中(我用的navicat)直接运行,如果要在mysql客户端(dos窗口)需要加 delimiter$$ 分隔符。首先来看第一个...
  • MySQL存储过程模板

    万次阅读 2017-12-24 22:22:51
    MySQL存储过程的范例模板,带返回值和异常处理的功能。 DROP PROCEDURE IF EXISTS sp_sample; CREATE PROCEDURE sp_sample(OUT errno INT) root:BEGIN /* 功能: IN参数: OUT参数: errno 存储过程异常标志...
  • MYSQL存储过程

    2014-07-18 16:16:48
    MYSQL存储过程 存储过程通常有以下优点: (1).存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2).存储过程允许标准组件是编程。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,511
精华内容 17,004
热门标签
关键字:

mysql存储过程set用法

mysql 订阅