mysql 存储过程使用示例
来源:互联网 发布:云计算培训沈阳 编辑:程序博客网 时间:2024/06/05 04:24
1.使用存储过程的好处
1.1 可以根据具体逻辑将多个SQL语句组合在一起执行
2.2 执行速度非常快,存储过程直接存储在数据库服务器中,免去多条SQL语句频繁传输造成的效率低下。
2.存储过程的缺点
2.1 移植性很差,不同数据库的存储过程不能互用
3.示例代码
3.1 全局变量和session变量
*这里说明一下,
@NAME代表创建了一个session变量,这个变量在一次session有用,
@@NAME代表创建了一个全局变量,只要mysql服务存在,变量就有效。通过 show variables 可以查看所有全局变量。
(如character_set_client代表以什么编码输出[控制台,或者程序],character_set_results代表以什么编码插入数据库[insert into])
一般我们手动创建的都是session,不用全局变量。
DELIMITER $DROP PROCEDURE pro_test; CREATE PROCEDURE pro_test()BEGINselect * from user;END $CALL pro_test();-- 输入参数DELIMITER $DROP PROCEDURE findById;CREATE PROCEDURE findById(IN uid INT)BEGINselect * from user where id=uid;END $CALL findById(5);-- 输出参数DELIMITER $-- DROP PROCEDURE setStr;CREATE PROCEDURE setStr(OUT str VARCHAR(20))BEGIN SET str = '这是一个测试字符串';END $CALL setStr(@NAME);select @NAME;-- 输入输出结合DELIMITER $DROP PROCEDURE findByIdReturnStr;CREATE PROCEDURE findByIdReturnStr(INOUT uname VARCHAR(20))BEGIN select * from user where name = uname; set uname = 'CHANG_NAME';END $SET @UNAME = 'name10';CALL findByIdReturnStr(@UNAME);select @UNAME;-- 带条件的存储过程DELIMITER $DROP PROCEDURE term;CREATE PROCEDURE term(IN num INT,OUT tips VARCHAR(20))BEGIN IF num=1 THENSET tips = "一"; ELSEIF num=2 THEN SET tips = "二"; ELSE SET tips = "其它值"; END IF;END $SET @TIPS = null;CALL term(3,@TIPS);select @TIPS;-- 带循环的存储过程DELIMITER $-- DROP PROCEDURE getSum;CREATE PROCEDURE getSum(IN num INT,OUT sum INT)BEGINDECLARE i INT DEFAULT 1;DECLARE tempsum INT DEFAULT 0; WHILE i<=num DOSET tempsum = tempsum+i;SET i = i+1; END WHILE;SET sum = tempsum;END $SET @SUM = null;CALL getSum(100,@SUM);select @SUM;
0 0
- MySql 存储过程使用示例
- mysql 存储过程使用示例
- MySql 存储过程游标使用示例
- mysql存储过程示例(使用嵌套游标)
- MYSQL存储过程示例
- mysql存储过程示例
- MySQL存储过程示例
- mysql存储过程示例
- Mysql 存储过程示例
- mysql存储过程示例
- mysql 存储过程示例
- Mysql存储过程示例
- Mysql - 存储过程示例
- mysql存储过程示例
- 存储过程使用示例
- 存储过程使用示例
- MySQL存储过程总结示例
- mysql 存储过程 简单示例
- easyui 行编辑
- usaco3.1.1 Score Inflation
- Shaders for Game Programmers and Artists(3) - DOF
- 第七章-定时器
- 生活随笔:ruby,小语种的喜欢
- mysql 存储过程使用示例
- Service Worker 入门 - PWA 强依赖于 Service Worker
- vs2015常用快捷键
- 沉思录
- i++和++i是怎么用的?它们作为函数参数时的使用举例
- Android双进程守护service保活
- Service Worker API (mozilla) vs Service Workers (google)
- 浅析回调
- typedef 和#define 的区别