赞
踩
使用语言 MySQL
使用工具 Navicat Premium 16
代码能力快速提升小方法,看完代码自己敲一遍,十分有用
目录
MySQL提供了查询存储过程的方式。
类似查看数据库中的数据表信息,MySQL用户也可以查看数据库中已创建的存储过程。语法格式如下:
查看hospital数据库中创建的存储过程代码如下:
除了通过指定数据库名查询存储过程,还可以通过like关键字匹配存储过程名称。例如:
示例
运行结果
除了查询存储过程的状态,还可以查询存储过程的创建代码。语法格式如下:
意思就是展示创建的存储过程
运行结果
在MySQL中,使用alter procedure语句可以修改创建存储过程时定义的特性。语法格式如下:
修改存储过程pro_show的SQL security特性为invoker。关键代码如下。
类似删除数据库中的数据表,MySQL用户可以使用drop procedure语句删除已创建的存储过程。语法如下:
用法与删除数据表相同。
注:在创建存储过程前,可以使用if exists语句检查存储过程是否存在。如果不存在,再进行创建。
先drop再create;
在实际应用中,要解决复杂的问题,往往涉及复杂的流程控制。类似于Java语言中的流程控制语句,MySQL提供的控制语句包括条件语句、循环语句和迭代语句。
MySQL提供两种条件语句,分别时if-elseif-else条件语句和case条件语句。
if 条件 then 语句列表
[elseif条件then语句列表]
[else语句列表]
end if;
运行结果
在MySQL中的case条件语句有两种写法。
case
when 条件 then 语句列表
[when 条件 then 语句列表]
[else 语句列表]
end case;
case 列名
when 条件 then 语句列表
[when 条件 then 语句列表]
[else 语句列表]
end case;
- DELIMITER //
-
- CREATE PROCEDURE getOrderTotalByStatus(IN orderStatus VARCHAR(50))
- BEGIN
- DECLARE totalAmount DECIMAL(10, 2);
-
- SET totalAmount = (
- SELECT
- SUM(CASE WHEN status = orderStatus THEN amount ELSE 0 END)
- FROM orders
- );
-
- SELECT totalAmount;
- END //
-
- DELIMITER ;

MySQL语句提供多种循环语句,包括while循环语句、loop循环语句和repeat循环语句。
这里主讲while循环;
[label:] while 条件 do
语句列表
end while [label]
运行结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。