Mysql 存储过程

  • A+
所属分类:服务器
摘要

Mysql 存储过程

Mysql 存储过程。

Mysql 存储过程

WampServer修改MySQL ROOT用户密码

 

  1. #存储过程
  2. /*
  3. 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合。
  4. 存储过程可以使用INOUT、INOUT类型
  5. 创建格式:
  6. delimiter $$
  7. CREATE PROCEDURE 存储过程名(参数列表)
  8. BEGIN
  9.         SQL语句代码块
  10. END
  11. $$
  12. 注意:
  13. 括号保卫的参数必须总是存在,如果没有参数,也该使用一个孔参数数列()
  14. 删除格式
  15. DROP PROCEDURE IF EXISTS 存数过程名;
  16. */
  17. #创建存储过程,以A、B为例进行练习
  18. DROP PROCEDURE IF EXISTS select_all;
  19. delimiter $$
  20. CREATE PROCEDURE select_all(in a_id smallint)
  21. BEGIN
  22.     SELECT *
  23.     FROM A
  24.     WHERE id = a_id;
  25. END
  26. $$
  27. CALL select_all(1);
  28. #存储过程参数类型讲解
  29. #IN类型
  30. #传进去的参数能够生效
  31. #内部运算的值不能返出去
  32. DROP PROCEDURE IF EXISTS  pr_param_in;
  33. delimiter $$
  34. CREATE PROCEDURE pr_param_in(in id int)
  35. BEGIN
  36.     if(id is not nullthen
  37.         set id = id + 1;
  38.     end if;
  39.         select id as in_inner;
  40. END
  41. $$
  42. set @id = 10;
  43. CALL pr_param_in(@id);
  44. SELECT @id as id_out;
  45. #OUT类型
  46. #传递进来的参数初始值都为 NULL
  47. #能把值返出去
  48. DROP PROCEDURE IF EXISTS  pr_param_out;
  49. delimiter $$
  50. CREATE PROCEDURE pr_param_out(out id int)
  51. BEGIN
  52.     select id as in_inner_1; #初始为 null
  53.     if(id is not nullthen
  54.         set id = id + 1;
  55.         select id as id_inner_2;
  56.     else
  57.         select 1 into id;
  58.     end if;
  59.     select id as id_inner_3;
  60. END
  61. $$
  62. set @id = 10;
  63. CALL pr_param_out(@id);
  64. SELECT @id as id_out;
  65. #INOUT类型
  66. #传进去的参数可以使用
  67. #能把值返出去
  68. DROP PROCEDURE IF EXISTS  pr_param_inout;
  69. delimiter $$
  70. CREATE PROCEDURE pr_param_inout(inout id int)
  71. BEGIN
  72.     select id as in_inner_1;
  73.     if(id is not nullthen
  74.         set id = id + 1;
  75.         select id as id_inner_2;
  76.     else
  77.         select 1 into id;
  78.     end if;
  79.     select id as id_inner_3;
  80. END
  81. $$
  82. set @id = 10;
  83. CALL pr_param_inout(@id);
  84. SELECT @id as id_out;
  • 我的微信
  • 请务必准确填写验证信息
  • weinxin
  • 我的微信公众号
  • 提供本博客以及生活资讯
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: