• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql存储过程经验

mysql 搞代码 7年前 (2018-06-05) 144次浏览 已收录 0个评论

mysql存储过程心得

问题:mysql存储过程的意义?

  •    存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。  存储过程会预先编译好sql语句在数据库服务器,提高了数据查询的速度,减小了客户端的压力
  •   速度快。尤其是对比较复杂的业务逻辑,减少了网络间流量的消耗
  •  存储过程可以重复使用,可减少数据库开发人员的工作量
  • 安全性高,可设定只有某此用户才具有对指定存储过程的使用权
  • 当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。

问题:mysql存储过程使用的时机?

  •  一个业务对多个表进行查询的时候比较适合
  •  复杂的数据处理时,比如报表处理
  •  多条件并且多表查询时,如做分页处理


mysql存储过程的实战教程


1 创建一个存储过程

mysql存储过程经验

2.创建存储函数

mysql存储过程经验

3.定义处理程序

方法一:捕获sqlstate_value

Declare CONTINUE HANDLER FOR SQLSTATE ‘42S02’ SET @info=’cannot  find’;

方法二:捕获mysql_error_code

Declare CONTINUE HANDLER FOR 1146 SET @info=’con not  find’;

方法三:是定义条件,然后调用

Declare can_not_find CONDITION  FOR 1146;

Declare CONTINUE HANDLER FOR can_not_find set @info=’can not find’;

方法四:使用SQLWARNING

Declare exit handler for SQLWARNING SET @info=’error’;

方法五:使用not found

Declare exit handler for NOT FOUND SET @info=’can not find’;

方法六:使用SQLEXCEPTION

Declare EXIT HANDLERFOR SQLEXCEPTION SET @info=’error’;

4.定义光标

Declare  cur_name varchar(20);

Declare  cur_address varchar(20);

声明光标

Declare cur_student CURSOR FOR select name,address from student;

打开光标

OPEN  cur_student

使用光标

FETCH cur_student into cur_name,cur_address;

关闭光标

Close  cur_student

5.循环控制流程

循环控制流程

l        IF语句

If   age=10 then

  Elseif age=20    then

  Else  

End if;

l         Case语句

CASE

   WHEN    THEN

   WHER     THEN

ELSE

END CASE;

l        LOOP语句和LEAVE语句  LEAVE是跳出循环  add_num结束标签

 add_num LOOP

SET  @count=@count+1;

If  @count=100   then

 LEAVE add_num;

              END LOOP add_num;   

l        ITERATE语句 结束本次循环

add_num LOOP

SET  @count=@count+1;

If  @count=100   then

 ITERATE add_num;

Select  * from  student;

 END LOOP add_num;

l         Repeat 语句

 Repeat

     Set @count=@count+1;

Unitl @count=100;

               END Repeat;

l          While语句

               While  @count<100 DO

                     SET @count=@count+1;

              End  while;

6.通过show命令来查看存储过程和存储函数信息

mysql存储过程经验

7.修改存储过程和存储函数的内容

mysql存储过程经验mysql存储过程经验

8综合实例  

现在有一张student表,请创建一个存储过程(输入参数一:起始年龄,输入参数二:结束年龄,输出参数:符合的学生总数量)

mysql存储过程经验

mysql存储过程经验


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql存储过程经验

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址