1 什么是存储过程

存储过程,带有逻辑的sql语句

之前的sql没有条件判断,没有循环

存储过程带上流程控制语句(if while)

2 存储过程特点

1)执行效率非常快!存储过程是在数据库的服务器端执行的!!!

2)移植性很差!不同数据库的存储过程是不能移植。

3 存储过程语法

-- 创建存储过程

DELIMITER $ -- 声明存储过程的结束符

CREATE PROCEDURE pro_test() --存储过程名称(参数列表)

BEGIN -- 开始

-- 可以写多个sql语句; -- sql语句+流程控制

SELECT * FROM employee;

END $ -- 结束 结束符

-- 执行存储过程

CALL pro_test(); -- CALL 存储过程名称(参数);

参数:

IN: 表示输入参数,可以携带数据带存储过程中

OUT: 表示输出参数,可以从存储过程中返回结果

INOUT: 表示输入输出参数,既可以输入功能,也可以输出功能

**************三、存储过程*******************-

-- 声明结束符

-- 创建存储过程

DELIMITER $

CREATE PROCEDURE pro_test()

BEGIN

-- 可以写多个sql语句;

SELECT * FROM employee;

END $

-- 执行存储过程

CALL pro_test();

-- 删除存储过程

DROP PROCEDURE pro_test();

-- 3.1 带有输入参数的存储过程

-- 需求:传入一个员工的id,查询员工信息

CREATE PROCEDURE pro_findById(IN eid INT) -- IN: 输入参数

BEGIN

SELECT * FROM employee WHERE id=eid;

END $

-- 调用

CALL pro_findById(4);

-- 3.2 带有输出参数的存储过程

CREATE PROCEDURE pro_testOut(OUT str VARCHAR(20)) -- OUT:输出参数

BEGIN

-- 给参数赋值

SET str='这是一个存储过程';

END $

3.3 带有输入输出参数的存储过程

CREATE PROCEDURE pro_testInOut(INOUT n INT) -- INOUT: 输入输出参数

BEGIN

-- 查看变量

SELECT n;

SET n =500;

END $

-- 调用

SET @n=10;

CALL pro_testInOut(@n);

SELECT @n;

3.4 带有条件判断的存储过程

-- 需求:输入一个整数,如果1,则返回“星期一”,如果2,返回“星期二”,如果3,返回“星期三”。其他数字,返回“错误输入”;

DELIMITER $

CREATE PROCEDURE pro_testIf(IN num INT,OUT str VARCHAR(20))

BEGIN

IF num=1 THEN

SET str='星期一';

ELSEIF num=2 THEN

SET str='星期二';

ELSEIF num=3 THEN

SET str='星期三';

ELSE

SET str='输入错误';

END IF;

END $

CALL pro_testIf(4,@str);

SELECT @str;

3.5 带有循环功能的存储过程

-- 需求: 输入一个整数,求和。例如,输入100,统计1-100的和

DELIMITER $

CREATE PROCEDURE pro_testWhile(IN num INT,OUT result INT)

BEGIN

-- 定义一个局部变量

DECLARE i INT DEFAULT 1;

DECLARE vsum INT DEFAULT 0;

WHILE i<=num DO

SET vsum = vsum+i;

SET i=i+1;

END WHILE;

SET result=vsum;

END $

DROP PROCEDURE pro_testWhile;

CALL pro_testWhile(100,@result);

SELECT @result;

3.6 使用查询的结果赋值给变量(INTO)

DELIMITER $

CREATE PROCEDURE pro_findById2(IN eid INT,OUT vname VARCHAR(20) )

BEGIN

SELECT empName INTO vname FROM employee WHERE id=eid;

END $

CALL pro_findById2(1,@NAME);

SELECT @NAME;

mysql存储过程入门_MySQL入门之存储过程相关推荐

  1. spss和mysql哪个好学_MYSQL 入门全套

    2 数据库管理是干什么用的? a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 PS:如果有了 ...

  2. mysql 存储过程 互斥_mysql中的存储过程和事务隔离

    ※存储过程 存储过程是保存在数据库上的一段可执行代码. 1.定义存储过程的语法是: Create procedure sp_name (参数..) Begin SQL语句 End; 2.调用它的方法: ...

  3. mysql 视图用户_MySQL视图,存储过程,用户管理

    1. 视图 一张虚拟表,就是将一个经常被使用的查询作为一个虚拟表,开发者查询的时候不需要再次书写SQL,而是直接调用对应的视图就可,调用视图以后MySQL会执行这个查询SQL. # 创建视图 crea ...

  4. c语言连接mysql(入门)_MySQL入门之C语言操作MySQL

    基本概念 C APIs包含在mysqlclient库文件当中,与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询.#include #include #include #include # ...

  5. sae mysql 同步本地_MYSQL入门之三_将本地MySQL数据导入SAE数据库_MySQL

    bitsCN.com MYSQL入门之三_将本地MySQL数据导入SAE数据库 1. MySQL字符集 MySQL的默认字符集是latin1,将本地MySQL库导出成sql,再导入到SAE的MySQL ...

  6. mysql定时作业_mysql 让一个存储过程定时作业的代码(转)

    1.在mysql 中建立一个数据库 test1 语句:create database test1 2.创建表examinfo create table examinfo( id int auto_in ...

  7. mysql 视图 分页_mysql查看所有存储过程,函数,视图,触发器,表,分页

    查询数据库中的存储过程和函数 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' ...

  8. mysql视图存储_Mysql 视图、存储过程以及权限控制

    导读: 该文章为视图.存储过程.用户权限练习: 如果有不对的地方欢迎指出与补充: 该基础练习基于MySQL5.0以上: 语句格式: 1. 视图格式: create view view_name[列名, ...

  9. mysql sql优化入门_Mysql入门SQL 语句优化方法30例

    作者:VEPHP   时间 2017-09-27 <Mysql入门SQL 语句优化方法30例>要点: 本文介绍了Mysql入门SQL 语句优化方法30例,希望对您有用.如果有疑问,可以联系 ...

最新文章

  1. 什么是静态UItableView
  2. 几经沉浮,人工智能前路何方?
  3. BPM实例分享:如何设置表单字体样式
  4. 1.13 实例:用户修改密码
  5. 在JavaEE中使用CDI的简单面向方面的编程(AOP)
  6. 交换机实现虚拟局域网
  7. k8s prometheus/grafana 监控系统建设
  8. MFC使用多线程_beginthread函数控制进度条和文本控件
  9. MacOS上MPV播放器常用快捷键(增加画面旋转快捷键)
  10. 于的繁体字有几种写法_在繁体字中,“于”、“於”这两个字如何正确使用?...
  11. Python 爬取QQ音乐个人单曲排行榜
  12. arp在交换机级联情况下的访问
  13. 电子凸轮追剪曲线生成算法 理解后可转成其他品牌PLC或任何一种编程语言
  14. Dolphinscheduler/海豚调度器的安装
  15. 全国中小学教师计算机水平考试,中小学教师计算机水平考试笔试试题
  16. 全自动棉纱缠绕机行业调研报告 - 市场现状分析与发展前景预测
  17. 沈航计算机考研专业课,2018年沈阳航空航天大学计算机学院811操作系统之计算机操作系统考研基础五套测试题...
  18. java手机振动软件_Android实现手机震动效果
  19. c++英雄联盟_C联盟
  20. CDA数据分析师深圳校区就业班第17期正式开班!

热门文章

  1. Echarts开源可视化库学习(二)常用图表的实现与效果
  2. (pwn) C语言 write函数且使用write函数泄露 libc版本
  3. python 比较列表相邻元素(找相同或去重)
  4. Python中sorted函数的用法
  5. python教程:sum(1-2+3-4+...+99)
  6. python元类的简单了解
  7. Python:初始函数
  8. Python爬取大量数据时,如何防止IP被封
  9. python 网络编程 套接字的初使用 基于TCP协议的socket
  10. tensorflow tf.data.Dataset.from_tensor_slices() (创建一个“数据集”,其元素是给定张量的切片)