对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

最新文章

  1. java时区问题的一个坑
  2. nginx完美支持tp框架
  3. ecshop订单中配送方式报错
  4. 转:EF调用存储过程、函数
  5. VS2015连接Oracle数据库(转)
  6. Android PackageManager基础知识
  7. 【IE6的疯狂之三】IE6 3像素BUG的实例
  8. 【Hololens】微软Hololens虚拟现实视频集
  9. [Swift]LeetCode290. 单词模式 | Word Pattern
  10. python爬虫---selenium库的用法
  11. lua-01
  12. 10.外观模式(Facade Pattern)
  13. (24)协程---joinall和value
  14. Jenkins进阶-用户权限管理(10)
  15. opencv 线,椭圆 圆
  16. 【洛谷】【最小生成树】P1195 口袋的天空
  17. 安装与使用 Trac 来管理项目
  18. Tomcat修改端口和编码配置
  19. 面向对象先修:Java入门
  20. 一个自带简易数据集的模拟线性分类器matlab代码——实验训练

热门文章

  1. PhpStorm之服务器篇
  2. POJ2718【DFS】
  3. bzoj 3277: 串 & bzoj 3473: 字符串【后缀自动机||后缀数组】
  4. IT兄弟连 JavaWeb教程 重定向
  5. IT兄弟连 JavaWeb教程 HTTP协议
  6. Lightoj 1044 - Palindrome Partitioning (DP)
  7. 看Facebook是如何优化React Native性能
  8. 机器学习概念之特征选择(Feature selection)
  9. C#局部类型partial在定义实体类Model中的应用
  10. 让jquery.tmpl支持序号${index}