mysql存储过程入门_MySQL入门之存储过程
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入门之存储过程相关推荐
- spss和mysql哪个好学_MYSQL 入门全套
2 数据库管理是干什么用的? a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 PS:如果有了 ...
- mysql 存储过程 互斥_mysql中的存储过程和事务隔离
※存储过程 存储过程是保存在数据库上的一段可执行代码. 1.定义存储过程的语法是: Create procedure sp_name (参数..) Begin SQL语句 End; 2.调用它的方法: ...
- mysql 视图用户_MySQL视图,存储过程,用户管理
1. 视图 一张虚拟表,就是将一个经常被使用的查询作为一个虚拟表,开发者查询的时候不需要再次书写SQL,而是直接调用对应的视图就可,调用视图以后MySQL会执行这个查询SQL. # 创建视图 crea ...
- c语言连接mysql(入门)_MySQL入门之C语言操作MySQL
基本概念 C APIs包含在mysqlclient库文件当中,与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询.#include #include #include #include # ...
- sae mysql 同步本地_MYSQL入门之三_将本地MySQL数据导入SAE数据库_MySQL
bitsCN.com MYSQL入门之三_将本地MySQL数据导入SAE数据库 1. MySQL字符集 MySQL的默认字符集是latin1,将本地MySQL库导出成sql,再导入到SAE的MySQL ...
- mysql定时作业_mysql 让一个存储过程定时作业的代码(转)
1.在mysql 中建立一个数据库 test1 语句:create database test1 2.创建表examinfo create table examinfo( id int auto_in ...
- mysql 视图 分页_mysql查看所有存储过程,函数,视图,触发器,表,分页
查询数据库中的存储过程和函数 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' ...
- mysql视图存储_Mysql 视图、存储过程以及权限控制
导读: 该文章为视图.存储过程.用户权限练习: 如果有不对的地方欢迎指出与补充: 该基础练习基于MySQL5.0以上: 语句格式: 1. 视图格式: create view view_name[列名, ...
- mysql sql优化入门_Mysql入门SQL 语句优化方法30例
作者:VEPHP 时间 2017-09-27 <Mysql入门SQL 语句优化方法30例>要点: 本文介绍了Mysql入门SQL 语句优化方法30例,希望对您有用.如果有疑问,可以联系 ...
最新文章
- 什么是静态UItableView
- 几经沉浮,人工智能前路何方?
- BPM实例分享:如何设置表单字体样式
- 1.13 实例:用户修改密码
- 在JavaEE中使用CDI的简单面向方面的编程(AOP)
- 交换机实现虚拟局域网
- k8s prometheus/grafana 监控系统建设
- MFC使用多线程_beginthread函数控制进度条和文本控件
- MacOS上MPV播放器常用快捷键(增加画面旋转快捷键)
- 于的繁体字有几种写法_在繁体字中,“于”、“於”这两个字如何正确使用?...
- Python 爬取QQ音乐个人单曲排行榜
- arp在交换机级联情况下的访问
- 电子凸轮追剪曲线生成算法 理解后可转成其他品牌PLC或任何一种编程语言
- Dolphinscheduler/海豚调度器的安装
- 全国中小学教师计算机水平考试,中小学教师计算机水平考试笔试试题
- 全自动棉纱缠绕机行业调研报告 - 市场现状分析与发展前景预测
- 沈航计算机考研专业课,2018年沈阳航空航天大学计算机学院811操作系统之计算机操作系统考研基础五套测试题...
- java手机振动软件_Android实现手机震动效果
- c++英雄联盟_C联盟
- CDA数据分析师深圳校区就业班第17期正式开班!
热门文章
- Echarts开源可视化库学习(二)常用图表的实现与效果
- (pwn) C语言 write函数且使用write函数泄露 libc版本
- python 比较列表相邻元素(找相同或去重)
- Python中sorted函数的用法
- python教程:sum(1-2+3-4+...+99)
- python元类的简单了解
- Python:初始函数
- Python爬取大量数据时,如何防止IP被封
- python 网络编程 套接字的初使用 基于TCP协议的socket
- tensorflow tf.data.Dataset.from_tensor_slices() (创建一个“数据集”,其元素是给定张量的切片)