对employees数据库建立存储过程

创建不含有输入输出变量的存储过程

DELIMITER // -- 设定语句结束分隔符
DROP PROCEDURE IF EXISTS GetEmployees; -- 如果该存储过程已经存在,则删除
CREATE PROCEDURE GetEmployees ( ) -- 创建不含有输入输出变量的存储过程
BEGIN
SELECT
*
FROM
employees
LIMIT 3; END //
DELIMITER ; -- 重新设定语句结束分隔符,每次查询结束后都要将分隔符还原为;

创建带有一个输出变量的存储过程

DELIMITER // -- 设定语句结束分隔符
DROP PROCEDURE IF EXISTS GetTotalNum; -- 如果该存储过程已经存在,则删除 CREATE PROCEDURE GetTotalNum (OUT TotalNum INT ) -- 创建带有输出变量的存储过程
BEGIN
SELECT
count( * ) INTO TotalNum
FROM
dept_emp; END //
DELIMITER ;-- 重新设定语句结束分隔符,每次查询结束后都要将分隔符还原为;

创建带有多个输出变量的存储过程

DELIMITER // -- 设定语句结束分隔符
DROP PROCEDURE IF EXISTS GetSalary; -- 如果该存储过程已经存在,则删除 CREATE PROCEDURE GetSalary ( OUT salaryhigh INT, OUT salarylow INT, OUT salaryavg INT ) -- 创建不含有输入输出变量的存储过程
BEGIN
SELECT
Max( salary ) INTO salaryhigh
FROM
salaries; SELECT
Min( salary ) INTO salarylow
FROM
salaries; SELECT
Avg( salary ) INTO salaryavg
FROM
salaries; END //
DELIMITER; -- 重新设定语句结束分隔符,每次查询结束后都要将分隔符还原为;

创建带有输入输出变量的存储过程

DELIMITER // -- 设定语句结束分隔符
DROP PROCEDURE IF EXISTS GetNumEachDept; -- 如果该存储过程已经存在,则删除
CREATE PROCEDURE GetNumEachDept ( IN dept CHAR(10), OUT NumDept INT ) -- 创建带有输入输出变量的存储过程
BEGIN
SELECT
count( * ) INTO NumDept
FROM
dept_emp
WHERE
dept_no = dept; END//
DELIMITER; -- 重新设定语句结束分隔符,每次查询结束后都要将分隔符还原为;

调用存储过程

CALL GetEmployees();

CALL GetSalary (@SalaryHigh, @SalaryLow, @SalaryAvg);
SELECT @Salaryhigh, @Salarylow, @Salaryavg; CALL GetNumEachDept ( 'd004', @NumDept );
SELECT @NumDept; CALL GetTotalNum(@TotalNum);
SELECT @TotalNum;

运行结果:

emp_no   birth_date    first_name  last_name  gender   hire_date
10001 1953-09-02 Georgi Facello M 1986-06-26
10002 1964-06-02 Bezalel Simmel F 1985-11-21
10003 1959-12-03 Parto Bamford M 1986-08-28 @Salaryhigh @Salarylow @Salaryavg
158220 38623 63811 @NumDept
73485 @TotalNum
331603
CALL GetEmployees()
> OK
> 时间: 0s CALL GetSalary (@SalaryHigh, @SalaryLow, @SalaryAvg)
> OK
> 时间: 2.467s SELECT @Salaryhigh, @Salarylow, @Salaryavg
> OK
> 时间: 0s CALL GetNumEachDept ( 'd004', @NumDept )
> OK
> 时间: 0.03s SELECT @NumDept
> OK
> 时间: 0s CALL GetTotalNum(@TotalNum)
> OK
> 时间: 0.07s SELECT @TotalNum
> OK
> 时间: 0s

MySQL存储过程实践的更多相关文章

  1. mysql存储过程实践总结

    一:参数类型 1.IN 只能读取参数并在函数内部更改有效,不能持久化到外部变量 2.OUT  不能读取参数,可以在函数内部修改并保存到外部变量 3.INOUT 既能读取又能持久化 二:基本格式 mys ...

  2. Mysql存储过程给变量赋值的几种方法实践

    BEGIN DECLARE v_request_count INT; #申请次数 DECLARE v_plan_count INT; #安排次数 DECLARE v_learn_count INT; ...

  3. MySQL存储过程 CASE语句

    MySQL存储过程  CASE语句 除了IF语句,MySQL提供了一个替代的条件语句CASE. MySQL CASE语句使代码更加可读和高效. CASE语句有两种形式:简单的搜索CASE语句. 简单C ...

  4. MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明

    MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据 ...

  5. MySql存储过程参考

    Mysql(9)---纪录一次实际开发过程中用到的复杂存储过程 为了尽可能的还原当时为什么需要用到存储过程,下面我写了个详细的文档,我们可以从需求文档出发来分析. 有关存储过程之前也写了两篇文章来做铺 ...

  6. MySQL存储过程(转)

    一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...

  7. MySql存储过程

    MySQL 存储过程 ```sql CREATE PROCEDURE myprocedure (IN para01 INTEGER) BEGIN DECLARE var01 CHAR(10); IF ...

  8. mysql存储过程和存储函数

    mysql存储过程和存储函数 存数函数代码示例: DROP PROCEDURE IF EXISTS calc_ci_day_suc_rate; delimiter // CREATE FUNCTION ...

  9. mysql存储过程编写-入门案例-遁地龙卷风

    (-1)写在前面 这篇文章只是简要的叙述了mysql存储过程编写的基本概念. 我使用的mysql版本是5.7.9-log. 参照<<深入浅出MySQL>>. (0) delim ...

随机推荐

  1. Codeforces645B【树状数组求逆序数】

    题意: 给你1-n的序列,然后有k次机会的操作,每一次你可以选择两个数交换. 求一个最大的逆序数. 思路: 感觉就是最后一个和第一个交换,然后往中间逼近,到最终的序列,用树状数组求一下逆序数. #in ...

  2. MySQL的分支

    1.MariaDB MariaDB数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MyS ...

  3. Integer Cache(带你脱坑)

    Integer Cache 废话不多说----->直接上代码: public class IntegerDemo { public static void main(String[] args) ...

  4. NSA互联网公开情报收集指南:迷宫中的秘密·下

    猫宁!!! 参考链接: https://www.nsa.gov/news-features/declassified-documents/assets/files/Untangling-the-Web ...

  5. Beta版本冲刺第三天!

    该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址:https://edu.cnblogs.com/c ...

  6. 51Nod 1649 齐头并进

    #include <iostream> #include <algorithm> #include <cstring> //两遍迪杰斯特拉 #define INF ...

  7. [BZOJ4064/Cerc2012]The Dragon and the knights

    Description 与当地鞋匠协会发生冲突的瓦维尔城堡的龙决定将它的狩猎场移出克拉科夫以减少敌对的邻居数量.现在他正在给和平而宁静的Bytes王国带来灾难与恐怖. 在Bytes王国有n条河流,每一 ...

  8. Brush (IV) LightOJ - 1018

    题意:平面上有一些点,每刷一次可以把同一条直线上的点都刷光,问最少几次把所有点刷光. 方法: 显然是一个状态压缩dp.ans[S]表示把S集合中点刷掉的最少次数.最开始想到的方法是如果S中只有一个或两 ...

  9. linux实现多台服务器文件同步

    inotify-tools+rsync实时同步文件安装和配置 Linux+Nginx+PHP+MySQL+MemCached+eaccelerator安装优化记录(见 http://www.linux ...

  10. ES相关概念理解

    Elasticsearch特点:分布式,高性能,高可用,高伸缩的搜索和分析: 1)可作为一个大型分布式集群,处理PB级别的数据,服务大型公司,亦可运行在少数或单台设备上服务小型公司 分布式的特性: E ...