mysql workbench 存储过程

本文介绍了MySQL存储过程的概念及其用途,并提供了详细的语法示例,包括如何创建无参数、带参数及带有输出参数的过程,同时展示了条件判断、多路选择、循环等控制结构的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL的存储过程: 

mysql存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 

要注意的地方: 

1.不能在一个存储过程里定义另一个存储过程,但可以调用另一个存储过程 
2. 在命令提示符里,需要修改分隔符,改为其它如:/    然后可以写多个sql 语句,语句之间通过(;)进行分割

语法:

 1  一般格式

create procedure p1()   //p1:过程名字;():必须有

   begin
     insert into user(account,pwd) values('aa','aa');
     select * from user;
   end
 2 带参
   create procedure p2(x int)
BEGIN
  declare y int;-- 定义整形变量y
  set y=x+1;    --  赋值
  select y;     -- 查询并输出y
end
3-- 输出参数
create PROCEDURE p3(in x int,out y int)
 BEGIN
   set y=x+1;
 end
4-- 判断
CREATE PROCEDURE p4( x int)
 BEGIN 
    if x>5 THEN
      select '大于5';
    elseif x>100 THEN
      select '大于100';
    else 
      select '小于5';
    end if;
 end
5 --多路选择
 create PROCEDURE p6(x int)
BEGIN 
  CASE
    when x=5 THEN  
      select '==5';
    when  x>5 THEN
      select '>5';
    ELSE  
      select '<5';
   end case;
end
6 --循环
  create PROCEDURE p5()
BEGIN 
  DECLARE x int;
  set x=0;
  while x<5 do
    select x;
    set x=x+1;
  end while;
END

7 --游标

医疗阶段报销

报销起伏线1:

start_line
300


阶段报销比例表2: 
low2high2percent
30110000.5
100150000.6
5001100000.7
100011000000.9

create procedure p9(x float)
BEGIN
  declare start2 int DEFAULT 0;
  DECLARE  low2 int ;  -- 低
  DECLARE  high2 int ; -- 高
  DECLARE  percent2 float ; -- 比例
  declare  total  float ;-- 报销所得
  DECLARE  temp int DEFAULT 0;
  declare last int DEFAULT 0;  
   -- 定义游标c
   declare c CURSOR for select * from segment;
  -- 游标结束的标志
   DECLARE CONTINUE HANDLER for not found set last=-1;
    -- 读出起付线
  select start_line into start2 from startn;  
   set temp=x;
   -- 打开游标
  open c;
-- 读取第一条数据
   FETCH c into low2,high2,percent2;
  WHILE last!=-1 do
    if x>low2 and x<high2 THEN
       set total=total+(temp-300)*percent2;
    end if;
    if x>high2 THEN  
       set total=(high2-low2)*percent2;
       set temp=x-(high2-low2);
    end if;
    FETCH c into low2,high2,percent2;
  end while;
-- 关闭游标
  close c;
  select total;
end
### 如何在 MySQL Workbench 中创建存储过程 #### 创建新的 EER 图 为了更好地管理和设计数据库结构,在开始编写存储过程之前,可以先利用EER图(实体关系图)来规划数据库模型。不过这一步不是必需的。 #### 进入 SQL 编辑环境 打开 MySQL Workbench 后,连接至目标数据库实例[^2]。随后进入SQL编辑器界面准备编写存储过程代码。 #### 开始定义存储过程 点击顶部菜单栏中的“File”,接着选择“New Routine”。此时会弹出一个新的窗口用于输入关于新存储过程的信息: - **Routine Name**: 输入要给这个存储过程起的名字。 - **Type of Routine**: 从下拉列表中挑选合适的类型,比如`PROCEDURE`(过程) 或者 `FUNCTION`(函数),这里假设我们创建的是一个Procedure类型的存储过程。 完成上述配置之后,点击“Apply”按钮保存设置并继续下一步操作。 #### 编写存储过程逻辑 下面是一个简单的例子展示如何在一个空白模板里构建自己的业务逻辑: ```sql DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `example_procedure`() BEGIN -- 声明变量, 如果有需要的话 DECLARE var_name VARCHAR(50); -- 设置变量初始值 SET var_name = 'Hello World!'; -- 插入数据到表中作为示范 (请替换为实际需求) INSERT INTO example_table(message_column) VALUES(var_name); END$$ DELIMITER ; ``` 这段代码展示了基本框架以及一些常见的语法元素,如声明局部变量、赋值语句等。当然具体实现取决于个人的应用场景[^4]。 #### 测试与验证 一旦完成了编码工作,则可以通过调用该存储过程来进行初步的功能测试。确保一切正常运行后再将其部署到生产环境中去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值